• ベストアンサー

wordファイルを開いたときにフォーム表示

wordファイルを開いたときにフォーム表示するにはどうしたらよいでしょうか? VBAでUserForm1を作りそこのボタンをおきます。 押すとwordドキュメント内に"HELLO"と書きます。 この場合 ThisDocument.TextBox1.Text = "HELLO" でよろしいのでしょうか? wordドキュメント内にテキストボックスをおかなくても 表示させることは可能でしょうか?

  • Mi8
  • お礼率76% (388/506)

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

  • ベストアンサー
回答No.1

VBAに詳しいわけではありませんが、とりあえず知っている内容で回答します。 Wordを開いた時に自動的に実行させるためには、 VBAの編集画面で、そのファイルに「標準モジュール」を追加し、 マクロ名に「AutoOpen()」と指定してやる必要があります。 具体的には、VBA編集画面で、メニューバーから「挿入」→「標準モジュール」を選びます。 そこで開いたウインドウに、 Sub AutoOpen() UserForm1.Show End Sub と記述します。 これで、文書を保存して、終了します。 再度、文書を開くと、UserForm1が開くはずです。 >この場合 >ThisDocument.TextBox1.Text = "HELLO" >でよろしいのでしょうか? この場合は、必ず、TextBox1をあらかじめ置いておかないとエラーになります。 単純に、ボタンを押して、文書に文字を挿入する場合、 コマンドボタンのコードに、 Private Sub CommandButton1_Click() ActiveDocument.Content.InsertAfter "Hello" End Sub としてやれば、選択した文字列の最後尾に「Hello」を追加します。 選択してなければ、文書の最後尾に追加されます。 もっとスマートなのは、他の方にお任せします(^_^;)

Mi8
質問者

お礼

できました。 ありがとうございます

関連するQ&A

  • エクセルVBAユーザーフォーム「テキストボックス」「コンボボックス」の書式設定について

    ユーザーフォームを作成して、出荷実績を投入しようとしています。 現在、ユーザーフォームを作成して、 上から以下のようにボタンが並んでいます。 (1)コンボボックス1  商品コードと商品名を選択する。 (2)テキストボックス1~7  地域ごとの出荷実績を投入する。 (3)コマンドボタン1  決定→入力 (4)コマンドボタン2  終了 そして、以下3つの問題点がありますが、どのようにVBAを記述したら良いのか、わかりません。  a.コンボボックス1に表示される商品を商品コード   (アルファベット)と商品名で改行したい。   つまり「折り返して全体を表示する」ことは出来ないでしょうか。  b.「AAAA~」は5行目・「CCCC~」は7行目 といった   ように、商品ごとに値を投入する行を変更したい。  c.テキストボックス1~6の内容の合計が自動で(入力している   最中に)テキストボックス7に表示されるようにしたい。 次のようなVBAは記述出来たのですが、上記3つの要素を加えるには どのようにしたらよいのか、教えていただけないでしょうか? ちなみに入力する順番は次のようになっています。(設定済み) M4→L4→J4→K4→H4→I4 →M5→L5→J5→K5→H5→I5 ------------------------------------------------------------- ’フォームを表示させる。 Sub formdsp() UserForm1.Show End Sub ’フォーム内容 Dim cnt As Integer Private Sub Combobox1_Change() End Sub '入力ボタン Private Sub CommandButton1_Click() With ActiveSheet .Cells(cnt, 13) = TextBox1.Text .Cells(cnt, 12) = TextBox2.Text .Cells(cnt, 10) = TextBox3.Text .Cells(cnt, 11) = TextBox4.Text .Cells(cnt, 8) = TextBox5.Text .Cells(cnt, 9) = TextBox6.Text .Cells(cnt, 15) = TextBox7.Text cnt = cnt + 1 .Cells(cnt, 13) = Activate End With UserForm1.TextBox1.Text = "" UserForm1.TextBox2.Text = "" UserForm1.TextBox3.Text = "" UserForm1.TextBox4.Text = "" UserForm1.TextBox5.Text = "" UserForm1.TextBox6.Text = "" UserForm1.TextBox7.Text = "" UserForm1.Combobox1.Text = "" UserForm1.TextBox1.SetFocus End Sub '終了ボタン Private Sub CommandButton2_Click() Unload Me End End Sub 'コンボボックス Private Sub userform_initialize() cnt = 4 With UserForm1.Combobox1 .AddItem "AAAA 11111111111" .AddItem "BBBB 22222222222" .AddItem "CCCC 333333333" .AddItem "DDDD 444444" .AddItem "EEEE 5555555555" .AddItem "FFFF 666" .AddItem "GGGG 7777777" .AddItem "HHHH 88888" .AddItem "IIIII 999999999" .AddItem "JJJJ 0000000000000" .AddItem "KKKK 1111" .AddItem "LLLL 222222" .AddItem "MMMM 3333" End With End Sub

  • Excel ユーザーフォーム間の Value 送受

    VBA の迷走者です。 Excel の同じブック内に、入力忘れがないことを確認して貰うため、2個のユーザーフォームを作りました。(メッセージボックスの機能は見つかりません) UserForm1 の Textbox1 に入っている数値を、UserForm2 で示して、「これでよいか」と確認させるには、 UserForm1 と UserForm2 には、それぞれどう書けばよいのでしょうか。 UserForm2 は 表示だけなので、ラベルではうまくいきませんか。 教えて下さい。よろしくお願いします。

  • EXCEL VBAのユーザーフォームの操作方法について教えていただきたいことがあります

    EXCEL VBAのユーザーフォームの操作方法について教えていただきたいことがあります。 (1)ユーザーフォームにテキストボックスを2つ作る (2)コマンドボタンを1つ作る。 この場合に、コマンドボタンを押すと、セットフォーカスされている方のテキストボックスに「新春」と表示させることはできるのでしょうか。 キーボードは当然セットフォーカスされているテキストボックスに入力されますが それと同じ機能をコマンドボタンにも持たせたいのです。 Private Sub CommandButton1_Click() で TextBox1がセットフォーカスされているならTextBox1に"新春"と入力する TextBox2がセットフォーカスされているならTextBox2に"新春"と入力する というような条件式になるのでしょうか。 色々調べましたが答えが見当たりません。 よろしくお願いいたします。

  • ワード「フォーム」について

    ドロップダウンフォームフィールド、 チェックボックスフォームフィールド、 テキストボックスフォームフィールドについてです。 ワードの問題集で、フォームツールバーを出しこの3つを使って文書作成をするのですが、フォーム自体、よく分かりません。 ツールバーのボタンを使い、それぞれをワード上に表示させることと、それぞれのダイアログボックスみたいなものを出すことはできました。 ・チェックボックス どうやったらチェックが入るのかもわかりません。 ・ドロップダウン 「リストボックス内の項目一覧」に項目を入力することはできたのですがそれ以外は分かりません。 ・テキストボックス どんなものか見当がつきません。 全く使ったことがない機能なのでご存知の方、お教えください。よろしくお願いいたします。

  • WORD VBAでテキストファイルを指定して...

    WORD2002を使っています。 WORD VBAでダイアログボックスを表示させ、オープンするファイルを指定しようとしています。 Documents.Open FileName:=dlg.Name, ReadOnly:=True でオープンするファイルがテキストファイルだけなので、ダイアログボックスに表示するファイルをテキストファイルだけにしたいと思っています。 どのように変更すればいいのでしょうか?

  • エクセルでフォームのキャプションを取得したいのですが・・・

    ユーザーフォーム1と2、二つのフォームがあります。 ユーザーフォーム1にテキストボックスが5つあったとして それぞれのテキストボックスにエンターしたときに ユーザーフォーム2を表示させるのですが、 そのときにテキストボックスのControlTipTextを ユーザーフォーム2のCaptionとして表示するには どうすればよいのでしょうか。 Private Sub UserForm_Initialize()で UserForm2.Caption = UserForm1.ActiveControl.ControlTipText としてみましたがだめでした。 例えばフォーム1上のテキストボックス1のControlTipTextが "AAAAA"だとして、テキストボックス1が選択されたとき(Enter)、 表示されたフォーム2のタイトルバーはAAAAAと表示。 同じ要領でテキストボックス2の場合はテキストボックス2の ControlTipTextを表示させる。 取り急ぎ乱文ですが宜しくお願いします。

  • VBAにて、ユーザーフォーム上のマルチページ上に配置したテキストボック

    VBAにて、ユーザーフォーム上のマルチページ上に配置したテキストボックスの番号を取得したい 例えば、userform1のmultipage1上にtextbox10というオブジェクトがあるとします。 textbox10のchangeイベントにて、この10という番号を取得したいのですが、どのような構文でできるのでしょうか?

  • Excel VBAで、ユーザーフォームの値を、モジュールで使用したい。

    VBA初心者です。(おそらく)基本的な質問で、申し訳ありません。 ユーザーフォーム1には、テキストボックス1とコマンドボタン1が配置されているとします。 Sub TEST () Dim N Userform1.Show MsgBox N End Sub Private Sub CommandButton1_Click() Dim N N = TextBox1.Text UserForm1.Hide End Sub Sub TESTを実行した時に、ユーザーフォーム1からNの値を引き継ぐには、どうしたら良いのでしょうか?よろしくお願いします。

  • VBE ユーザーフォーム

    下記3点につき、ご教授御願い致します。 (1)テキストボックスに日付を入力。 入力する値は6桁の数字。 テキストボックス入力→050902 テキストボックス表示→05/09/02 としたい。 Private Sub TextBox16_Exit(ByVal Cancel As MSForms.ReturnBoolean) TextBox1.Text = Left(TextBox1.Text, 2) & "/" & Mid(TextBox1.Text, 3, 2) _ & "/" & Right(TextBox1.Text, 2) End Sub とすると、見かけ上は「05/09/02」となってくれるのですが、そうするとテキストボックスに何も表示しないでEnterを押すと(入力後に消した場合等も)「//」が出てしまいます。 入力する日付は本日とは限りません。 表示は「2005/09/02」ではなく「05/09/02」としたい。 (2)テキストボックスに今日の日付を自動的に表示させたい。 (手入力で変更できるようにする為、テキストボックスを使用) Private Sub UserForm_initialize() TextBox2.Text = Date End Sub とすると「2005/09/02」となり、「05/09/02」としたい。 (3)テキストボックス同士の計算 TextBox3とTextBox4に数字を入力し、その積をTextbox5に表示させたい。 TextBox5.text = Textbox3.text * TextBox4.text とすると 「型が一致しません」と出てしまう。 (「text」を「value」に変えても同じ) できましたら、イベント名もお教え下さい。 ---------------------------------------- よろしく御願いします。

  • Vba UserForm SetFocus

    ExcelのVbaでUserForm上に英単語のタイピング練習のソフトを作ろうとしていますが、うまくいきません。コントロールのイベントについての理解が不足しているのが分かりました。 ユーザフォーム上の複数のテキストボックス間のフォーカスの移動について教えて下さい。 UserForm1にテキストボックスを3つ、コマンドボタンを1つ配置しました。それぞれTextBox1、TextBox2、TextBox3、CommandButton1とします。 Private Sub CommandButton1_Click() TextBox3.SetFocus ・・・(1) End Sub Private Sub TextBox3_Enter() MsgBox "In TextBox3" TextBox2.SetFocus ・・・(2) End Sub 各TextBoxのTabStopプロパティは「True」、「TabIndex」は番号順になっています。 コマンドボタンのTabStopプロパティは「False」にしています。 フォームを表示し、コマンドボタンをクリックするとエラーが発生します。 (2)の実行の後(?)、(1)がエラー表示されます。 各イベントの発生のタイミング、連鎖、終了等の理解が不足していて、その理由がよく分かりません。どなたか教えていただけないでしょうか。よろしくお願いします。

専門家に質問してみよう