• ベストアンサー

WordのコマンドはVBAで使える?

こんにちは。 Word2007で用意されている、 Bold (Ctrl + B) や NormalStyle (Ctrl + Shift + N) といったコマンドを、 Subプロシージャの中に記述して、そのマクロを実行しようとすると、 「SubまたはFuctionが定義されていません。」 というエラーが表示されます。 VBAコードの中で、コマンドを使う事はできないのでしょうか?

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

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

疑問に思っているものは、組み込みのコマンドマクロ名。 http://www.tanimoto.to/comp/WordCommandMacrosList.html マクロ例 Sub test()  Application.Run MacroName:="Bold" End Sub

MetalLover
質問者

お礼

御回答ありがとうございます。 コマンドマクロ名というものがあったのですね。 記載頂いたURL、とても参考になります。 貴重な情報提供、ありがとうございました。

その他の回答 (2)

  • DreamyCat
  • ベストアンサー率56% (295/524)
回答No.2

希望する範囲が選択できていれば Selection.Font.Bold = wdToggle Selection.Font.Italic = wdToggle でできます。あるいは wdToggleの代わりにTrueでもいいと思います。 範囲が選択できていないときはどこをどう選択したらいいか ???です

MetalLover
質問者

お礼

御回答ありがとうございます。 のBoldやItalicは、コマンドではなく、Fontオブジェクトのプロパティなのではないでしょうか? また、NormalStyleコマンドを、Selection.Font.NormalStyleや、Selection.NormalStyleという形で使おうとすると、「メソッドまたはデータメンバが見つかりません」と表示されて使えませんでした。 どうやら、Wordのコマンドを、オブジェクトのプロパティのようにして使う事はできないようです。

  • trajaa
  • ベストアンサー率22% (2662/11921)
回答No.1

ソレはコマンドでなく、ショートカットキーで無いのか?

MetalLover
質問者

お礼

御回答ありがとうございます。 BoldやNormalStyleといったコマンドを、 VBAマクロの中で使いたいという意味なのですが・・・

関連するQ&A

  • VBE上の任意の行のVBAコードを実行する

    こんにちは。 現在、Word2007およびExcel2007で、VBAの勉強をしています。 VBE上にSubプロシージャの定義を記述し、それのどこかにカーソルがある状態でF8キーを押すと、 Subプロシージャの先頭行から順に、VBAコードが実行されます。 では、カーソルがある行のVBAコードを、いきなり実行する事ってできないのでしょうか? 以上の件について何かご存知の方がいらっしゃれば、是非教えて頂きたいと思います。 では、よろしくお願い致します。

  • コマンドボタンにマクロを登録させる方法

    エクセルでマクロを作成しました。マクロを実行させる為に「コントロールツールボックス」にある「コマンドボタン」で作ったボタンに登録をしたいのですがうまくいきません。 以前はコマンドボタンを作ったら、自動的に「マクロの登録」ダイアログボックスが出てきたのですが、何故か出なくなってしまいました。オートシェイプで作成したボタンなら、右クリックすると「マクロの登録」があるのですが、コマンドボタンを右クリックしても「マクロの登録」がありません。以前のように、自動的に「マクロの登録」ダイアログボックスを表示させる方法があったら教えてください。 また、ボタンをダブルクリックするとVBAが開いて以下のようなコードの記載がありますが、ここにコードを記載すればボタンをクリックしたときにマクロが実行されるのでしょうか?VBAはまったく解りませんので、どのように記載したらいいのかわかりません。実際に記入して教えてください。お願いします。マクロ名は、日本語で「結果一覧」としました。(「Private Sub CommandButton1_Click()」と「End Sub」の間に、マクロの記述部分をコピーして、貼り付けたら、ボタンをクリックしたときにマクロは実行できたのですが、もっと簡単にマクロ名を記述したら実行できるような気がするのですが、簡単に記述して実行できる方法があったら教えてください。) OSはWindows ME、Excelは2002 です。よろしくお願いします。 コマンドボタンをダブルクリックしたときのコードです。 Private Sub CommandButton1_Click() End Sub

  • Excel VBA プロシージャの種類の使い分け

    VBAを勉強中です。 最初に読んだ参考書には、 プロシージャにはsubとfunctionの2種類があると書かれていたので 鵜呑みにしていたのですが、 また違う切り口から、privateとpublicが存在していることを わかり始めて来たところです。 シートにコマンドボタンなどをつけてコードを登録しようとすると 自動的にprivate subになるので、 ひとつのシートにくっついているものはprivate subで あまり他シートから使う必要がないんだなぁという認識なのですが、 まずこれが合っているのか不安なのと、 あと、たとえばまったく同じコマンドボタンを 2枚以上のシートにつける時、 各シートに同じVBAをひとつずつ記述するより、 標準モジュールにprivate subを記述したほうが良いのか、という事が 気になっています。 好き好きなのかも知れませんが、私がつくったものに 他の人が変更を加える可能性があり、できる限り見やすくしたいので、 一般的にはどうされているものなのかお教えくだされば幸いです。

  • エクセルVBAでコマンドプロンプトを立ち上げたい。。。

    恥ずかしながら、初心者でどうしたらいいのわからず困っています。 エクセルVBAでコマンドプロンプトを立ち上げたいのですが、 どのように書いたらよろしいのでしょうか。 初心者なもので、 Sub test() End Sub の間にどのように記述したらよろしいですか。 また、エクセルのあるセルに入力した文字をコマンドプロンプトへ 転記する方法を教えてください。 全くの初心者ですので、質問内容が不明かも知れません。。。

  • 難し過ぎるエクセルVBAを何故簡単にできないのか?

     エクセルを始めて2年位になりますが、ようやく簡単なマクロを作ったりできるようになりました。  もっと便利な自動化手順をマスターするにはVBAを勉強する必要があります。  少しばかり参考書を読みましたが、英語の記述が非常に分かりにくく、大変奥の深いものと思います。  複雑な条件(条件分岐等)処理をするにはマクロだけではできませんが、VBAはプロシージャ、コード、モジュール、ステートメント等、聞き慣れない用語が多く、あまりにもレベルが高すぎて続きそうもないなぁという気がしています。  万人が理解でき、使いこなせる代物とは思えません。正直、これをマスターされている方はどのように勉強されたのか知りたいほどです。何も知らない素人が独学でマスターできるようには思えません。  私の理想として何で、英語でなく日本語で記述していないのかと腹が立ちます。  MSエクセルも都度、バージョンアップがされていますが、この辺の内容は全然、分かりやすくはなっていないと強く思います。  何故、もっと簡単に、日本語でも操作できるようにはならないものかと怒りを覚えます。  プログラムの構成上、無理なんでしょうか?難しいプロシージャやコード名を覚えなくても、単純なマクロのように操作を記録し、その操作を忠実に実行再現できるようになっておればどんなに『便利なのになぁ』と思います。これで誰でも使えるとマイクロソフトは思っているのでしょうか?  私としては英語記述を入力しなくても、日本語の操作目次があって、この操作したら日本語で解説されるまた、日本語コマンドでコード入力ができるようにして欲しいのです。MSにはそんな気がないのですかね。多くの日本のエクセルユーザーそんな思いは持っていないのでしょうか? 

  • ワードVBAで画像を挿入

    ワードVBAのことですが、文書の中に図形のボックスが何個か並んでいます(2列で)。それぞれのボックスの中に、同じ画像をボタン1発で挿入するということを簡単なVBAで実現できるものでしょうか。 #同じ画像を全部のボックスに挿入したい。 #ワードのVBAの経験なしです。 #できるとしたら何行くらいの記述でできるものかという難易度も知りたい。 #とても簡単なサンプルコードも教えていただけると尚ありがたいです。

  • ワード vba

    ワードの文書内に、文字があるかどうかをvbaで確認したいのですが エクセルのコードを張り付けてみましたが、 もちろんエラーになります。 Sub Macro() If Not Cells.Find(What:="test", MatchByte:=False) Is Nothing Then Debug.Print "testはあります" End If End Sub Cellsで、エラーになります。 このようなコードをワードで使う場合はどう書き換えればいいでしょうか? よろしくお願いします。

  • VBAで指定したボタンを押す

    VBA初心者ですが、コマンドボタンを作ってボタンを押すと Ctrl + : を実行して時間を記入するようにしたいのですがうまく動作させることができません。 マクロの記録機能で試してみたのですが以下のようになりボタンを押してもうまく動作しませんでした。   Sub Macro1() ActiveCell.FormulaR1C1 = "16:33" End Sub 簡単な文例やヒントなどありましたら宜しくお願いいたします。

  • Excel VBAの Functionをワークシートから使用できないようにしたいのですが...

    Excel VBAについて質問です。 functionプロシージャを使っている時,一般のマクロからは呼び出せるが,ワークシート関数として使いたくないものがあります。 すなわち,「関数の挿入」ダイアログの「ユーザー定義」のところに不必要な(ワークシート関数として使う意図のないもの)を表示させたくないのですが,そのようなことは可能でしょうか。 今,できるだけsubプロシージャの形にするようにしたりしているのですが,うまい方法があればFunctionも使いたいと思っています。 良い方法があれば教えてください。

  • Excel VBA --- コマンドボタンが表示上で消える ---

    Excel VBAの初心者です。 今回、マニュアル本を見ながら試行錯誤でマクロにチャレンジしています。 用語や説明が上手くできないかもしれませんがよろしくお願いします。 OSはWindows2000、Excelのバージョンは2000です。 sheet1をメニュー画面として、コマンドボタンをいくつか貼り付けて、そのシート名を表示したコマンドボタンをクリックすると別のシートに 飛ぶようにしています。 別のシートに飛んで、そこで作業を終えたら、今度はそのシート上に貼り付けた『メニューに戻る』コマンドボタンをクリックしてsheet1のメニュー画面に戻るようにマクロを組みました。 ところが、作業用のシートからメニューに戻ると前回クリックしたコマンドボタンが表示上消えてしまっています。 そのコマンドボタンがあった位置にカーソルを持って行ってクリックするとちゃんとコマンドボタンの動作をします。 同じような質問がないか検索してみましたら『コマンドボタン上の文字の表示がおかしくなる』という質問があって、下記コードを入れたら解決したそうなので、Sheet1に下記のようなコードを入れてみました。 でもダメでした。 Private Sub Worksheet_Activate() Application.ScreenUpdating = False ActiveWindow.ScrollRow = 100 ActiveWindow.ScrollRow = 1 End Sub 解決方法のご教授をお願い致します。

専門家に質問してみよう