アプリ版:「スタンプのみでお礼する」機能のリリースについて

wordのvbaに関する質問です。極めて初歩的な質問とは思いますが、仕事の都合上じっくり勉強をしている時間がないのでご容赦ください。
「C:\test」ディレクトリに作ったwordファイルに、下のような表Aを入れます。表Aで「|」マークはwordの縦罫線です。また「aaaa,bbb,ccccc」というのは、完全に出鱈目な名前で、ただの例です。

番号 | ファイル名
1 | aaaa
2 | bbb
3 | ccccc

ここで、「C:\test\sub」フォルダに「sub_aaaa.pdf,sub_bbb.pdf,sub_ccccc.pdf」という、表A中のファイル名に「sub_」をつけた名前のPDFがあります。表A中の文字列「aaaa」を「ctrl+クリック」すれば「sub_aaaa.pdf」が開けるように、文字列にハイパーリンクを貼ります。同様に、「bbb」「ccccc」の文字列にも、文字列+subの名前のPDFが開けるようにハイパーリンクを貼っていきます。この手順が一発で出来るように、マクロ化するということはできるでしょうか。ちなみに、表A中の文字列「aaaa」が「abc」に変更されるなどはありえます。そのときはPDFファイル名も、それにしたがって一致するよう変更します。

A 回答 (1件)

>wordのvbaに関する質問です。

極めて初歩的な質問とは思いますが・・
ワードのVBAは、あまり出ない質問の分野で、回答も余り出ない恐れはある。
私も勉強が十分ではないので、自信がないが、
マクロの記録をとって勉強してはどうでしょう。
質問の説明が抽象的でよく読めないが、
ワードの表は1つのようだ。列も1つのようだ。下記では2列X3行。
・各セルを捉える、
・そのセルの値を採る
のは、下記で出来るでしょう。
2列・3行の例。
エクセルのCellsと違いCellに注意。Cellに続けてRangeが要るなど。
Sub test14()
For i = 1 To 3
For j = 1 To 2
ActiveDocument.Tables(1).Cell(i, j).Range.Select
MsgBox ActiveDocument.Tables(1).Cell(i, j).Range.Text
Next j
Next i
End Sub
ーーー
ハイパーリンク設定だが、ワードの文書のメニューで
挿入ーハイパーリンクの操作をしてマクロの記録を採る。
ActiveDocument.Hyperlinks.Add Anchor:=Selection.Range, Address:= _
"C:\Documents and Settings\XXXX\My Documents\01化c.xls", SubAddress:="", _
ScreenTip:="", TextToDisplay:="A"
上記はエクセルブックにハイパーリンクを張った例だが、PDFファイルに対して張るようファイル名を変える。TextToDisplay:="A"の”A"は前記の表のセルのテキストを使う。
MsgBox ActiveDocument.Tables(1).Cell(i, j).Range.Text
をA=ActiveDocument.Tables(1).Cell(i, j).Range.Text にして
TextToDisplay:=A にする。
A=ActiveDocument.Tables(1).Cell(i, j).Range.Text の次の行に上記の・・Hyperlinks.Add・・ のコードを入れて見ては。
    • good
    • 0
この回答へのお礼

ありがとうございました。やっぱり、難しそうですね。

お礼日時:2009/12/27 10:07

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!