79本目 セル範囲をWordに図として貼り付け

VBA100本ノック

VBA100本ノック 79本目を動画で解説しています。Excelの神髄さんの模範解答はコチラ


問題

#VBA100本ノック79本目
ブックと同一フォルダにdoc1.docxがあります。
ブックマーク「エクセル表」の位置から、
・ブック名
・シート名
・A1セルからの表をリンクしない図で貼り付け
同一フォルダに「doc1_yyyymmdd.docx」で保存してWord終了してください。
※完成は画像を参照
※シートは任意

解答

Sub ワードとの連携()

    Dim wb As Workbook: Set wb = ThisWorkbook
    Dim ws As Worksheet: Set ws = ActiveSheet
    
    Dim objWord As Word.Application    'アプリ本体
    Set objWord = New Word.Application
    objWord.Visible = True   '可視化

    Dim objDoc As Word.Document     'ドキュメント
    Set objDoc = objWord.Documents.Open(wb.Path & "\doc1.docx")
    
    objDoc.Bookmarks("エクセル表").Select    'ブックマークをセレクト
    objWord.Selection.TypeText wb.Name & vbLf & ws.Name    'ブック名、改行、シート名
    
    ws.Range("A1").CurrentRegion.CopyPicture  '図としてコピー
    objWord.Selection.Paste '貼り付け
    
    '最後の.docxの前に当日の日付を入れて保存
    objDoc.SaveAs2 Replace(objDoc.FullName, ".docx", Format(Date, "yyyymmdd") & ".docx")
    
    
End Sub

■考え方・流れ
0:00 冒頭・問題確認
2:33 Wordを参照設定
4:56 doc1.dockを開く
7:03 ブックマークを選択する
10:49 セル範囲を図として貼り付ける

新人君
新人君

ワードは初めてですね!

ブチョ
ブチョ

プクク!俺は起動するのが
人生で2回目だぞ!

新人君
新人君

少なすぎるわ…

Wordを参照設定

さて!じゃあまずは…
ワードを参照設定するところから始めるね!!
え?参照設定がわからない??

それならノック71本目を確認だ!

「ツール」→「参照設定」→「Microsoft Woad ○○ Object Library」にチェック!

他のアプリと連携したい時は…CreateObject関数でもできるんだけど…
初心者さんは参照設定することをおススメするぞ!

最後は変数!
アプリ本体と、対象となるブック!
2つを定義しているぞ!

doc1.dockを開く

よし!そしたら変数に、ワード本体と、ブックをセットしていくぞ!!
まずはワード本体から!!

ちな、これだと我らから見えないから、VisibleプロパティさんをTrueに変えといたほうが良いかな!

そして…お次はブック本体を変数にセットなんだけど…

これは、Openメソッドの引数を、objDocにぶち込んであげる感じだ!!

あとは…どのブックを開くかを、Openさんの引数に入れてあげるだけ!

実行結果↓

ブックマークを選択する

お次は!!ワードの中の、ブックマークの選択だ!!!
ワードのブックマークってのは…Excelで言う名前定義みたいなイメージ!

つまり!ブックマーク部分をSelectして、
そこに”貼り付け”って操作をして言ってあげよう!

これは…参照設定した甲斐もあり…
インテリが出るから楽勝だったね!

じゃ、ここに対して何をするかって話だけど…
一旦は、Excelのブック名、シート名を入力するよ!

ワード上の、選択している部分を操作したい時は、”Selection”だけだと駄目(Excel側のことになっちゃう)だから注意ね!

こんな感じ↓

実行結果↓

セル範囲を図として貼り付ける

よし!!!じゃあ最後に!!!
対象のセル範囲を図として貼り付けたら終了!

方法は二つ…
①CopyPictureメソッドで、画像としてコピーしてそのまま貼り付け
➁Copyメソッドでコピーして図として貼り付け
どっちでもいいんだけど…

今回は①の方法でやっていくぞ!
この方が簡単だと判断!!

そして最後!
ワードの名前を変更して終了!!!
日付だけ入れてるぞ!

実行結果↓

終わりです!!お疲れさまでした!

ブチョ
ブチョ

最後は簡単だったね!

新人君
新人君

お疲れさまでした!

あとがたり

おはこんばんちは。uぷ主です。
79本目、ワードにExcelの図を貼り付ける問題でした!!

ワードとの連携は初めて…と言うか…
ワードなんて仕事で使ったことなかったんで
「ブックマーク機能」とか初めて知りましたwwww

自分の知識の偏りを感じる問題でござったww

今の会社で働く限り、今後も使うことはなさそうかな…www
とは言え、めっちゃ勉強になりました!!!

コメント

タイトルとURLをコピーしました