• ベストアンサー

WordVBAで規定のところに文字列を挿入したい

 VBA超初心者の質問です。  ExcelVBAでは値をセルに代入することは出来ますが、WordVBAで規定の場所に文字列を代入するといったことはどうすれば良いのでしょうか?  できれば、テキストボックスの中身と連動できたらと思うのですが、できますか?  ちなみに、私はVBAはほとんど知識がありません。  ただ単にVBAの勉強の手始めにこれだけ教えてください。  Web検索しても見つからないので、よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

私もワードのVBAは初心者です。 (テキストボックスの作り方・値のセットのし方) 値は手動でなく、プログラムでセットする方法です。 Sub test05() ActiveDocument.Shapes.AddTextbox _(msoTextOrientationHorizontal,100 ,100,100,100).Select Selection.TypeText Text:="東京都文京区" End Sub 100,・・のところは、Left,Top,Width,Heightの指定です。ワードに貼り付けるコントロールはShapesでまとめられていて、エクセルなどと違うようです。 (所定のところへテキストボックスの値をセットのし方) 「所定のところ」と言うのが、ワードの場合は曲者なような気がする。取りあえず何行目の何文字目と言う指定を知りましたので、記します。 Private Sub TextBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean) MsgBox TextBox1.Text Selection.MoveDown unit:=wdLine, Count:=3 Selection.MoveRight unit:=wdCharacter, Count:=8 Selection.TypeText Text:=TextBox1.Text End Sub テキストボックスのイベントを、どれで捕らえるかが難しいが、比較的人為的にしないと起こらないダブルクリックにしました。 テキストボックス内に文字を入れ、テキストボックス内で ダブルクリックすると3行下の該当文字から8文字目に 入力文字が挿入されます。 ワードのVBAは(1)解説書が少ない。(2)エクセルのように、Cell(Range)に当たる基本的な単位に当たるものが、見つからない。(3)エクセル・アクセスVBAと統一されていない(4)ビジネスなどで利用応用出来る場面が良く見えない。など学習は苦難の道が待っている気がします。OKWEBの質問も回答も少ないようです。お互いに頑張りましょう。

toshihiko_ooishi
質問者

お礼

 回答ありがとうございました。  自分は、WordVBAを勉強して、まずは簡単なFAX送信票をフォームから入力できればと思っています。  現在はそれをFileMakerでやっていますが、なんかFileMakerの方が簡単そうです・・・。  Vectorでもフリーソフトが少ないようなので、元々このような用途には向かないのかもしれません・・・?

toshihiko_ooishi
質問者

補足

他の投稿が来そうにないので締め切ります。 ありがとうございました。

その他の回答 (1)

  • taknt
  • ベストアンサー率19% (1556/7783)
回答No.1

ちょっとむずかしいのですが、以下のURLを参考にしてやってみてください。 http://www.microsoft.com/japan/developer/library/off2000/vbawrd/womthMoveUp.htm

参考URL:
http://www.microsoft.com/japan/developer/library/off2000/vbawrd/woobjSelection.htm
toshihiko_ooishi
質問者

お礼

 回答ありがとうございました。  私には難しく全部はワカリマセンでしたが、挿入場所にブックマークを付けて、そこを選択するということですね?  後でVectorで見つけた「履歴書 For Word」では、挿入箇所にテキストボックスを入れて、VBAで参照しているようですが、Shapes(1)と数字が入るのが嫌な感じがします。他に方法はないものでしょうか。 ************************************************* ActiveDocument.Shapes(1).Select With Selection .Font.Size = 10 .TypeText Text:="氏名" & Space(8) & TextBox1.Text End With *************************************************

toshihiko_ooishi
質問者

補足

他の投稿が来そうにないので締め切ります。 ありがとうございました。