WordのVBAについて。解決できた場合は500ポイント差し上げます。テキストボックスに配列変数に入っている値を入れて、変数の値をファイル名として保存するという動作を繰り返したいのですが、マクロ記録時はテキストボックスが選択できないようで、使い方がよく分かりません。EXCELのVBAは使えるので、繰り返しの意味等は理解できるのですが、どなたかWordのVBAで上記を行う方法をご教示いただけませんでしょうか。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2004/11/29 19:10:12
  • 終了:--

回答(3件)

id:sandaler No.1

sandaler回答回数671ベストアンサー獲得回数02004/11/29 19:34:29

ポイント500pt

テキストボックスの値なら、TextRangeを使えばいいのではないでしょうか?

以下はワードのヘルプより。

TextRange プロパティ

関連項目対象使用例アプリケーション情報指定したテキスト枠の中のテキストを表す Range オブジェクトを取得します。

expression.TextRange

expression 必ず指定します。TextFrame オブジェクトを表すオブジェクト式を指定します。

使用例

次の使用例は、作業中の文書にテキスト ボックスを追加し、そのテキスト ボックスに文字列を追加します。

Set myTBox = ActiveDocument.Shapes _

.AddTextBox(Orientation:=msoTextOrientationHorizontal, _

Left:=100, Top:=100, Width:=300, Height:=200)

myTBox.TextFrame.TextRange = ”Test Box”

次の使用例は、作業中の文書の ”テキスト 2” に文字列を追加します。

ActiveDocument.Shapes(”TextBox 1”).TextFrame.TextRange _

.InsertAfter(”New Text”)

次の使用例は、作業中の文書の ”テキスト 2” から文字列を取得し、メッセージ ボックスに表示します。

MsgBox ActiveDocument.Shapes(”TextBox 1”).TextFrame.TextRange.Text

id:nsp2

いいところまで来ていますが

自分で作ったテキストボックスのオブジェクト名(上の例で言うと”TextBox 1”の名称)が取得できず、指定したアイテムがありませんというエラーになってしまいます。どうやってテキストボックスの名称を取得すればよいのでしょうか。

2004/11/29 20:09:53
id:sandaler No.2

sandaler回答回数671ベストアンサー獲得回数02004/11/29 20:28:34

http://www.hatena.ne.jp/1101723012#

人力検索はてな - WordのVBAについて。解決できた場合は500ポイント差し上げます。テキストボックスに配列変数に入っている値を入れて、変数の値をファイル名として保存するという動作を..

次のようなかんじでNameを使って名前を付けてやれば簡単に取り出せます。

Set myTBox = ActiveDocument.Shapes _

.AddTextbox(Orientation:=msoTextOrientationHorizontal, _

Left:=100, Top:=100, Width:=300, Height:=200)

myTBox.Name = ”Textbox 25”

myTBox.TextFrame.TextRange = ”あいうえお”

MsgBox ActiveDocument.Shapes(”TextBox 25”).TextFrame.TextRange.Text

id:nsp2

オートシェイプのテキストボックスではなくてコントロールのテキストボックスを操作しなければならないということを今知りました。これからやってみたいと思います。オートシェイプのテキストボックスはVBAでは操作できないんですかねえ。

2004/11/29 20:33:19
id:taknt No.3

きゃづみぃ回答回数13539ベストアンサー獲得回数11982004/11/29 20:37:09

ポイント100pt

テキストボックスがあるところ(コントロールツールボックス)に 紙を手でもっているようなアイコンがあります。

それをクリックすると プロパティが開きます。

プロパティの中にオブジェクト名というのがあります。 そこに あるものを利用してください。

TextBox1とあるならば TextBox1と書きます。

MsgBox ActiveDocument.TextBox1.Text

で 表示されないですか?

id:nsp2

根本的なところで勘違いしており解決しました。ありがとうございました。

2004/11/29 21:25:42

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません