- 08/14/2019
- 25分読む
-
- o
- R
- L
- m
- o
-
+4
あなたはwordで五十のテーブルの繰り返しクリーンアップに直面していますか? 特定のドキュメントを開いたときにユーザーに入力を促すようにしますか?, あなたは困難を効率的にMicrosoft ExcelのスプレッドシートにMicrosoft Outlookから連絡先を取得する方法を考え出すことがありますか?
これらのタスクを実行し、Officeアプリケーションを拡張するために使用できるシンプルで強力なプログラミング言語であるVisual Basic for Applications(VBA)for Officeを使用する
この記事は、VBAについて学びたい経験豊かなOfficeユーザーと、プログラミングがOfficeのカスタマイズにどのように役立つかを知りたい人を対象としています。
Officeアプリケーションスイートには、豊富な機能セットがあります。, 文書、電子メール、データベース、フォーム、スプレッドシート、およびプレゼンテーションを作成、フォーマット、および操作する OfficeのVBAプログラミングの大きな力は、マウス、キーボード、またはダイアログボックスで実行できるほぼすべての操作もVBAを使用して実行できることです。 さらに、VBAで一度行うことができれば、百回同じくらい簡単に行うことができます。 (実際には、反復的なタスクの自動化は、OfficeのVBAの最も一般的な用途の一つです。,)
毎日のタスクを加速するVBAスクリプトの力を超えて、VBAを使用してOfficeアプリケーションに新しい機能を追加したり、ビジネスニーズに固有の方法でドキュメントのユーザーとプロンプトを表示したり対話したりできます。 たとえば、ドキュメントを初めて保存しようとしたときに、特定のネットワークドライブにドキュメントを保存するようにユーザーに通知するポップアッ
この記事では、VBAプログラミングのパワーを活用する主な理由のいくつかについて説明します。, VBA言語と、ソリューションを操作するために使用できるすぐに使用できるツールについて説明します。 最後に、このテーマに関するイベント、回避に向けた一部の一般的なプログラミングの悔やmissteps.
注
複数のプラットフォームにわたってOfficeエクスペリエンスを拡張するソリューションの開発に興味がありますか? 新しいOfficeアドインモデルをチェックしてください。 OfficeアドインはVSTOアドインやソリューションに比べてフットプリントが小さく、HTML5、JavaScript、CSS3、XMLなどのほぼすべてのwebプログラミングテクノロジを使用し,
VBAを使用する場合とその理由
OFFICEでVBAプログラミングを検討する主な理由はいくつかあります。
自動化と繰り返し
VBAは、書式設定や修正の問題に対する反復的な解決策になると効果的かつ効率的です。 たとえば、Wordの各ページの上部にある段落のスタイルを変更したことはありますか? ExcelからWord文書またはOutlook電子メールに貼り付けられた複数のテーブルを再フォーマットする必要がありましたか? 複数のOutlookの連絡先で同じ変更を加えなければならなかったことはありますか?,
あなたが十回または二十回以上行わなければならない変更がある場合は、VBAでそれを自動化する価値があるかもしれません。 それはあなたが何百回もしなければならない変更であれば、それは確かに検討する価値があります。 手動で行うことができるほぼすべての書式設定または編集の変更は、VBAで行うことができます。
ユーザー操作の拡張
標準アプリケーションに含まれていない特定の方法でOfficeアプリケーションまたはドキュメントを操作するようユーザーに促したり強制したりすることがあります。, 例えばするためには、迅速かつユーザーに特定のアクションが開いて保存、または印刷する。
Officeアプリケーション間の相互作用
OutlookからWordにすべての連絡先をコピーし、特定の方法でフォーマットする必要がありますか? または、ExcelからPowerPointスライドのセットにデータを移動する必要がありますか? 時には、単純なコピーと貼り付けは、あなたがそれをやりたいことをしないか、それが遅すぎます。, VBAプログラミングを使用して、複数のOfficeアプリケーションの詳細を同時に操作し、あるアプリケーションのコンテンツを別のアプリケーションのコンテン
別の方法で物事を行う
VBAプログラミングは強力なソリューションですが、常に最適なアプローチではありません。 もう使用その他の方法での達成を目指します。
尋ねるべき重要な質問は、より簡単な方法があるかどうかです。 VBAプロジェクトを開始する前に、組み込みのツールと標準機能を検討してください。, たとえば、時間のかかる編集またはレイアウトタスクがある場合は、スタイルまたはアクセラレータキーを使用して問題を解決すること タスクを一度実行してから、CTRL+Y(やり直し)を使用して繰り返すことはできますか? 正しい形式またはテンプレートを使用して新しい文書を作成し、そのコンテンツをその新しい文書にコピーできますか?あなたが必要とするソリューションはすでにそこにあるかもしれません。 時間について知り事前に飛び込プラグインです。
VBAプロジェクトを開始する前に、VBAを操作する時間があることを確認してください。, プログラミ 特に初心者として、慎重に作業する時間がない限り、プログラミングに目を向けることはあり いく”スクリプトを”問題を解決する場合の締切り織機を出力することができストレス状態です。 あなたが急いでいる場合は、単調で反復的であっても、従来の方法を使用することをお勧めします。
VBA Programming101
コードを使ってアプリケーションに物事を行わせる
コードを書くことは神秘的で難しいと思うかもしれませんが、基本原則は毎日の推論を使い、かなりアクセスしやすいです。, Microsoft Officeアプリケーションは、電話と対話するために使用するボタンで電話が設計されているのとほぼ同じ方法で、指示を受け取ることができるオブジェクトと呼ばれるものを公開するような方法で作成されます。 ボタンを押すと、電話機は命令を認識し、ダイヤルしている順序に対応する番号が含まれます。 プログラミ これらのオブジェクトは広大ですが、限界があります。, できるだけでなくどのよう設計されているので、けいするように指示しています。
たとえば、Wordで文書を開き、いくつかの変更を加え、文書を保存してから閉じるユーザーを考えてみましょう。 VBAプログラミングの世界では、WordはDocumentオブジェクトを公開します。 VBAコードを使用すると、Documentオブジェクトに開く、保存する、閉じるなどの操作を指示できます。
次のセクションでは、オブジェクトの編成および記述方法について説明します。,
オブジェクトモデル
開発者はプログラミングオブジェクトを階層内に整理し、その階層をアプリケーションのオブジェクトモデルと呼びます。 たとえば、Wordには、Documentオブジェクトを含むトップレベルのApplicationオブジェクトがあります。 文書オブジェクトを含む項の規定物です。 オブジェクトモデルは、ユーザーインターフェイスに表示され これらは、アプリケーションとその機能の概念マップです。
オブジェクトの定義はクラスと呼ばれるため、これら二つの用語が同じ意味で使用されることがあります。, 技術的には、クラスの記載又はテンプレートを作成するために使用される、またはインスタンス化し、オブジェクトです。
オブジェクトが存在すると、そのプロパティを設定してそのメソッドを呼び出すことで操作できます。 オブジェクトを名詞と考える場合、プロパティは名詞を記述する形容詞であり、メソッドは名詞をアニメーション化する動詞です。 プロパティを変更すると、オブジェクトの外観や動作の品質が変更されます。 お電話でも受け付けるオブジェクトのメソッドがオブジェクトを行います。,
この記事のVBAコードは、アプリケーション自体、Excelのワークシート、Wordのドキュメント、PowerPointのプレゼンテーション、Outlookのエクスプローラーおよびフォルダーオブジェクトなど、コードが操作するオブジェクトの多くが既に実行されているオープンなOfficeアプリケーションに対して実行されます。 オブジェクトモデルの基本的なレイアウトと、現在の状態にアクセスできるアプリケーションのいくつかの主要なプロパティがわかったら、OFFICEのVBA,
メソッド
たとえば、Wordでは、ApplicationオブジェクトのActiveDocumentプロパティを使用して、プロパティを変更したり、現在のWord文書のメソッドを呼び出したりできます。 このActiveDocumentプロパティは、Wordアプリケーションで現在アクティブなDocumentオブジェクトへの参照を返します。 “への参照を返します”means”あなたにアクセスを与えます。つまり、アクティブな文書をアプリケーションに保存します。”
次のコードは、それが言うことを正確に行います。,
Application.ActiveDocument.Save
このアプリケーションでは、ActiveDocumentによって参照されるドキュメントを使用して、コードを左から右に読み取りますSaveメソッドを呼び出します。”Saveは最も簡単な方法であることに注意してください。 ドキュメントオブジェクトに保存するように指示すると、それ以上の入力は必要ありません。
メソッドがより多くの情報を必要とする場合、それらの詳細はパラメータと呼ばれます。 次のコードは、ファイルの新しい名前を必要とするSaveAsメソッドを実行します。,
Application.ActiveDocument.SaveAs ("New Document Name.docx")
メソッド名の後に括弧で囲まれた値がパラメーターです。 ここでは、ファイルの新しい名前はSaveAsメソッドのパラメーターです。
プロパティ
プロパティの読み取りに使用するプロパティを設定するのと同じ構文を使用します。 次のコードは、ExcelでセルA1を選択し、そのセルに何かを入れるプロパティを設定するメソッドを実行します。
Application.ActiveSheet.Range("A1").Select Application.Selection.Value = "Hello World"
VBAプログラミングの最初の課題は、各Officeアプリケーションのオブジェクトモデルを理解し、オブジェクト、メソッド、およびプロパティ, のオブジェクトモデルについてのすべてのオフィスアプリケーションがそれぞれが特定の種類の書類およびオブジェクトで操作.
コードスニペットの最初の行には、今回はアプリケーションオブジェクトExcelがあり、次にアクティブなワークシートへのアクセスを提供するActiveSheetがあります。 その後、”このようにセルの範囲を定義する”という意味で、馴染みのない用語”範囲”です。”コードはRangeに、定義されたセルセットとしてA1だけで自分自身を作成するように指示します。 言い換えれば、コードの最初の行は、オブジェクト、範囲を定義し、それに対してメソッドを実行してそれを選択します。, 結果は、Selectionと呼ばれる別のプロパティに自動的に格納されます。こんにちは、
コードの二番目の行は、SelectionのValueプロパティをテキスト”Hello World”に設定し、その値はセルA1に表示されます。
記述する最も単純なVBAコードは、作業しているOfficeアプリケーション内のオブジェクトにアクセスしてプロパティを設定するだけです。 たとえば、Wordのテーブル内の行にアクセスし、VBAスクリプトで書式を変更できます。,そのコードを書くことができれば、プログラミングのすべての力を利用して、いくつかのテーブルやドキュメントで同じ変更を加えたり、いくつかのロジックや条件に従って変更を加えたりすることができます。 コンピュータの場合、1000の変更を行うことは10を行うことと変わらないので、より大きなドキュメントや問題でここに規模の経済があり、VBAが本当に輝き、時間を節約することができる場所です。,
マクロとVisual Basic Editor
Officeアプリケーションがオブジェクトモデルを公開する方法について知ったので、オブジェクトメソッドの呼び出し、オブジェ これを行うには、通常はVisual Basicエディターを使用して、Officeが理解できる場所と方法でコードを記述する必要があります。 デフォルトでインストールされていますが、多くのユーザーは、リボンで有効になるまで使用できることさえ知りません。
すべてのOfficeアプリケーションでリボンが使用されます。, このタブでは、Visual Basic Editorおよびその他の開発者ツールにアクセスします。 Officeではデフォルトで開発者タブが表示されないため、次の手順を使用して有効にする必要があります。
開発者タブを有効にするには
-
ファイルタブで、オプションを選択してオプションダイアログボックスを開きます。
-
ダイアログボックスの左側にあるリボンのカスタマイズを選択します。
-
ダイアログボックスの左側にあるコマンドの選択で、一般的なコマンドを選択します。,
-
ダイアログボックスの右側にあるリボンのカスタマイズで、ドロップダウンリストボックスでメインタブを選択し、開発者チェックボックスを
-
OKを選択します。
注
Office2007では、Officeボタンを選択し、オプションを選択し、オプションダイアログボックスの人気カテゴリのリボンに開発者タブを表示チェックボック
開発者タブを有効にすると、Visual Basicボタンとマクロボタンが簡単に見つかります。
図1., 開発者タブのボタン
セキュリティ上の問題
Officeユーザーをウイルスや危険なマクロコードから保護するために、標準のファイル拡張子を使用する標準のOfficeドキュメントにマクロコードを保存することはできません。 代わりに、特別な拡張子を持つファイルにコードを保存する必要があります。 たとえば、aを使用して標準のWord文書にマクロを保存することはできません。docx拡張子;代わりに、特別なWordマクロ対応文書を使用する必要があります。docm拡張。
あなたはaを開くとき。,docmファイル、Officeセキュリティは、文書内のマクロが実行されないようにすることができます。 すべてのOfficeアプリケーショ デフォルト設定では、マクロの実行が無効になりますが、マクロが無効になっていることを警告し、そのドキュメントでマクロを元に戻すオプション
信頼できる場所、信頼できるドキュメント、または信頼できる発行元を作成して、マクロを実行できる特定のフォルダを指定できます。, 最も移植可能なオプションは、配布するデジタル署名された文書で動作する信頼できる発行元を使用することです。 特定のOfficeアプリケーションのセキュリティ設定の詳細については、オプションダイアログボックスを開き、信頼センターを選択し、信頼センターの設定を
メモ
Outlookなどの一部のOfficeアプリケーションでは、既定でローカルコンピューターのマスターテンプレートにマクロを保存します。, この戦略は、独自のマクロを実行するときに独自のコンピューター上のローカルセキュリティ上の問題を軽減しますが、マクロを配布する場合は展開戦略
マクロの記録
開発者タブでマクロボタンを選択すると、マクロダイアログボックスが開き、特定のドキュメントまたはアプリケーションからアクセスできるVBAサブルーチンまたはマクロにアクセスできるようになります。 Visual BasicボタンはVISUAL Basicエディターを開き、VBAコードを作成および編集します。,
WordおよびExcelの開発者タブにある別のボタンは、マクロを記録するボタンで、アプリケーションで実行するアクションを再現できるVBAコードを自動的に生 Record Macroは、VBAについての詳細を学ぶために使用できる素晴らしいツールです。 生成されたコードを読むことで、VBAへの洞察を得ることができ、ユーザーとしてのOfficeの知識とプログラマーとしての知識の間の安定した橋渡しを提供しま, 唯一の注意点は、マクロエディターが意図についていくつかの仮定をしなければならず、それらの仮定が必ずしも正確ではないため、生成されたコードが
マクロを記録するには
-
Excelを開いて新しいブックに移動し、リボンの[開発者]タブを選択します。 マクロの記録を選択し、マクロの記録ダイアログボックスで、マクロの名前としてMacro1、場所としてこのブックを含むすべてのデフォルト設定を受け入
-
マクロの記録を開始するには、OKを選択します。 注どのようにボタンのテキスト変動を止めます。, 記録するアクションを完了した瞬間に、そのボタンを選択します。こんにちは。
-
セルB1を選択し、プログラマの古典的な最初の文字列Hello Worldを入力します。 セル内の値の入力が完了するのをExcelが待機しているため、グレー表示されます。
-
セルB2を選択して、セルB1でアクションを完了し、[録音の停止]を選択します。
-
[開発者]タブで[マクロ]を選択し、選択されていない場合は[Macro1]を選択し、[編集]を選択してVisual Basic EditorでMacro1からコードを表示します。,
図2. Visual Basic Editorのマクロコード
コードを見る
作成したマクロは、次のコードのようになります。
Sub Macro1()'' Macro1 Macro'' Range("B1").Select ActiveCell.FormulaR1C1 = "Hello World" Range("B2").SelectEnd Sub
セルA1でテキストを選択した以前のコードスニペットとの類似点と相違点に注意してください。 このコードでは、セルB1が選択され、アクティブになったセルに文字列”Hello World”が適用されますこんにちは。 テキストを囲む引用符は、数値ではなく文字列値を指定します。,
セルB2を選択して録画停止ボタンを再度表示したことを覚えていますか? そのアクションはコード行としても表示されます。 Macro recorderはすべてのキーストロークを記録します。
アポストロフィで始まり、エディタによって緑色に着色されたコード行は、コードを説明したり、あなたや他のプログラマにコードの目的を思い出させ VBAは、一重引quoteで始まる行または行の一部を無視します。 コードに明確で適切なコメントを書くことは重要なトピックですが、その議論はこの記事の範囲外です。, その後の参照のこのコードに含んでいない人のコメントする。
マクロレコーダーがコードを生成するときに、複雑なアルゴリズムを使用して、目的のメソッドとプロパティを決定します。 あなたが特定のプロパティを認識しない場合は、あなたを助けるために利用可能な多くのリソースが たとえば、記録したマクロでは、FormulaR1C1プロパティを参照するコードがマクロレコーダーによって生成されます。 それが何を意味するかわからない?
注
アプリケーションオブジェクトはすべてのVBAマクロで暗黙的に指定されていることに注意してください。, 記録したコードはアプリケーションで動作します。 各行の先頭にあります。
開発者ヘルプの使用
記録されたマクロでFormulaR1C1を選択し、F1キーを押します。 ヘルプシステムはクイック検索を実行し、ExcelヘルプのExcel Developerセクションに該当する科目があることを判断し、FormulaR1C1プロパティを一覧表示します。 プロパティの詳細については、リンクを選択できますが、その前に、ウィンドウの下部にあるExcelオブジェクトモデル参照リンクに注意してください。, 選択へのリンクビューインターネットでのオブジェクトをExcelを活用しながらオブジェクトモデルを記述するワークシートとその成。
それらのいずれかを選択すると、その特定のオブジェクトに適用されるプロパティとメソッド、および関連するさまざまなオプションへの相互参照 多くのヘルプエントリには、役立つ簡単なコード例もあります。 たとえば、BORDERSオブジェクトのリンクをたどって、VBAで境界線を設定する方法を確認できます。
Worksheets(1).Range("A1").Borders.LineStyle = xlDouble
コードの編集
ボーダーコードは記録されたマクロとは異なります。, オブジェクトモデルと混乱する可能性があることの一つは、この例では、任意のオブジェクト、セルA1をアドレス指定する方法が複数あることです。
プログラミングを学ぶための最良の方法は、作業コードに小さな変更を加え、結果として何が起こるかを見ることです。 今すぐ試してみて。 Visual Basic EditorでMacro1を開き、コードを次のように変更します。
Sub Macro1() Worksheets(1).Range("A1").Value = "Wow!" Worksheets(1).Range("A1").Borders.LineStyle = xlDoubleEnd Sub
ヒント
コードを操作するときは、入力エラーを避けるために、できるだけコピー&ペーストを使用します。,
試してみるためにコードを保存する必要はないので、Excelドキュメントに戻り、[開発者]タブで[マクロ]を選択し、[Macro1]を選択してから[実行]を選択します。 セルA1にはテキストWow! そして、その周りに二重線の境界線があります。
図3. 最初のマクロの結果
マクロの記録、オブジェクトモデルのドキュメントの読み取り、および簡単なプログラミングを組み合わせて、何かを行うVBAプログラムを作成しました。 おめでとう!
動作しませんでしたか? VBAでのデバッグの提案について読む。,
プログラミングのヒントとトリック
例から始める
VBAコミュニティは非常に大きく、WEB上で検索すると、ほとんどの場合、あなたがやりたいことに似たことをするVBAコードの例が得られます。 良い例が見つからない場合は、タスクをより小さな単位に分割してそれらのそれぞれを検索するか、より一般的で同様の問題を考えてみてください。 例から始まることは時間の時間救うことができる。
それはあなたが一緒に来るのを待っている無料でよく考え抜かれたコードがウェブ上にあることを意味するものではありません。, 実際、見つかったコードの中にはバグや間違いがある可能性があります。 アイデアは、オンラインまたはVBAのドキュメントで見つける例があなたに頭のスタートを与 プログラミングを学ぶには時間と思考が必要です。 あなたの問題を解決するために別の解決策を使用するために大急ぎで取得する前に、VBAがこの問題のための正しい選択であるかどうかを自問して
より簡単な問題を作る
プログラミングはすぐに複雑になることができます。 特に初心者としては、問題を可能な限り最小の論理単位に分解し、各部分を単独で記述してテストすることが重要です。, あなたの前にあまりにも多くのコードがあり、混乱したり混乱したりする場合は、問題を停止して脇に置いてください。 問題に戻ったら、問題の小さな部分を新しいモジュールにコピーし、その部分を解決し、コードを動作させ、動作することを確認するためにテストします。 その後、次の部分に移動します。
バグとデバッグ
プログラミングエラーには、プログラミング言語の文法規則に違反する構文エラーと、VBAがコードを実行しようとすると構文的に正しく見えるが失敗するランタイムエラーがあります。,コードに構文エラーを入力すると、Visual Basic Editorがビープ音を鳴らして点滅します。
修正するのはイライラすることがありますが、構文エラーをキャッチするのは簡単です。
たとえば、VBAでは文字列値を二重引用符で囲む必要があります。 代わりに一重引quotesを使用すると何が起こるかを調べるには、Visual Basic Editorに戻り、”Wow!”を置き換えます。”コード例の文字列に”Wow!”が含まれています。’(つまり、単一引quotesで囲まれた単語Wow)。 次の行を選択すると、Visual Basicエディターが反応します。, エラー”Compile error:Expected:expression”はそれほど役に立ちませんが、エラーを生成する行が赤くなり、その行に構文エラーがあることがわかり、その結果、このプログラムは実行され
“OK”を選択し、テキストを”Wow!”に戻します。”.
実行時エラーは、プログラミング構文が正しく見えるためキャッチするのが難しいですが、VBAが実行しようとするとコードが失敗します。,
たとえば、Visual Basic Editorを開き、Valueプロパティ名をマクロでValueXに変更すると、RangeオブジェクトにValueXというプロパティがないため、意図的にランタイムエラーが Excelドキュメントに戻り、マクロダイアログボックスを開き、Macro1を再度実行します。 Visual Basicのメッセージボックスに、実行時エラーについて”Object doesn’t support this property of method”というテキストが表示されます。”そのテキストは明確ですが、詳細を調べるにはDebugを選択してください。,
Visual Basic Editorに戻ると、黄色のハイライトを使用して失敗したコード行を表示する特別なデバッグモードになります。 予想どおり、ValueXプロパティを含む行が強調表示されます。実行中のVBAコードに変更を加えることができるので、ValueXをValueに戻し、Debugメニューの下にある小さな緑色の再生ボタンを選択します。 プログラムは正常に再度実行されます。
より長く、より複雑なプログラムのためにデバッガをより意図的に使用する方法を学ぶことをお勧めします。, 少なくとも、コードを見たいポイントで実行を停止するようにブレークポイントを設定する方法、コードの実行時にさまざまな変数とプロパティの値を これらのオプションで利用可能なすべてのデバッグメニューは深刻なデバッガユーザーは、通常の記憶を伴うキーボードショートカット.,
参考資料の井戸の使用
Officeヘルプに組み込まれている開発者リファレンスを開くには、リボンで疑問符を選択するか、F1キーを押して、Officeアプリケーションからヘルプリファレンスを開きます。 次に、検索ボタンの右側にあるドロップダウン矢印を選択して内容をフィルタリングします。 “開発者参照”を選択します。 左側のパネルに目次が表示されない場合は、小さな本のアイコンを選択して開き、そこからオブジェクトモデルの参照を展開します。
図5., 開発者ヘルプでのフィルタリングは、すべてのOfficeアプリケーションに適用されます
オブジェクトモデル参照の参照に費やされた時間 作業しているOfficeアプリケーションのVBA構文とオブジェクトモデルの基本を理解したら、当て推量から整然としたプログラミングに進みます。
もちろん、Microsoft Office Developer Centerは、記事、ヒント、およびコミュニティ情報のための優れたポータルです。,
フォーラムやグループの検索
すべてのプログラマーは、彼らが見つけることができるすべての参照記事を読んだ後でも、問題を解決するためのさまざまな方法について考えて夜に睡眠を失う、時々立ち往生。 幸いなことに、インターネットが培ってきたのコミュニティ開発者にその解決プログラムの問題点.
“office developer forum”をWeb上で検索すると、いくつかのディスカッショングループが表示されます。 “Office development”または問題の説明で検索して、フォーラム、ブログ投稿、記事も検索できます。,
問題を解決するためにできることすべてを行っている場合は、開発者フォーラムに質問を投稿することを恐れないでください。 このフォーラムは大歓迎だから新しいプログラマーや多くの経験を積んだデベロッパーには嬉しいです。
開発者フォーラムに投稿するときに従うべきエチケットのいくつかのポイントは次のとおりです。
-
投稿する前に、サイトでFAQまたはメンバーが従ってほしいガイドラインについて調べてください。
-
これらのガイドライ,
-
明確で完全なコードサンプルを含め、コードの長いセクションの一部である場合は、コードを編集して他の人に明確にすることを検討してください。
-
問題を明確かつ簡潔に記述し、問題を解決するために実行した手順を要約します。 の時間をお書きポストなどである場合は特に、慌た。 問題文を初めて読んだときに、読者に意味をなさないような方法で状況を提示してください。
-
礼儀正しく、あなたの感謝を表現してください。,
プログラミングをさらに進める
この記事は短く、VBAとプログラミングの表面を傷つけるだけですが、うまくいけば、あなたを始めるのに十分です。
このセクションでは、さらに重要なトピックについて簡単に説明します。
変数
この記事の簡単な例では、アプリケーションがすでに作成したオブジェクトを操作しました。 を作成しても良いでしょう自分のオブジェクトの店舗値または参照の他のオブジェクトの一時お客様にご利用願います。 これらは変数と呼ばれます。,
VBAで変数を使用するには、Dimステートメントを使用して、変数が表すオブジェクトのタイプをVBAに指示する必要があります。 次に、その値を設定し、それを使用して他の変数またはプロパティを設定します。
Dim MyStringVariable As String MyStringVariable = "Wow!" Worksheets(1).Range("A1").Value = MyStringVariable
分岐とループ
この記事の単純なプログラムは、トップダウンから一度に一行を実行します。 プログラミングの真の力は、指定した条件に基づいて、実行するコード行を決定する必要があるオプションから来ています。 操作を何度も繰り返すことができる場合、これらの機能をさらに拡張できます。, たとえば、次のコードはMacro1を拡張します。
コードを入力またはVisual Basic Editorに貼り付けて実行します。 表示されるメッセージボックスの指示に従って、セルA1のテキストをWow!から変更します。 はいに! そして、ループの力を見るために再びそれを実行します。 このコードスニペットを示す変数、分岐およびプ. お読み後まで行動してみてはどうなるかを自分たちで決定として各ラインを実行す.
私のOfficeアプリケーションのすべて:コード例
ここでは試してみるいくつかのスクリプトがあります。,
Outlookで電子メールを作成します
Sub MakeMessage() Dim OutlookMessage As Outlook.MailItem Set OutlookMessage = Application.CreateItem(olMailItem) OutlookMessage.Subject = "Hello World!" OutlookMessage.Display Set OutlookMessage = NothingEnd Sub
Outlookで電子メールを自動化する状況があることに注意してください。
Excelワークシートの空の行を削除
セルの列を選択してこのマクロを実行すると、選択した列の空白のセルを持つすべての行を削除できます。
PowerPointの空のテキストボックスを削除します
Sub RemoveEmptyTextBoxes() Dim SlideObj As Slide Dim ShapeObj As Shape Dim ShapeIndex As Integer For Each SlideObj In ActivePresentation.Slides For ShapeIndex = SlideObj.Shapes.Count To 1 Step -1 Set ShapeObj = SlideObj.Shapes(ShapeIndex) If ShapeObj.Type = msoTextBox Then If Trim(ShapeObj.TextFrame.TextRange.Text) = "" Then ShapeObj.Delete End If End If Next ShapeIndex Next SlideObjEnd Sub
このコードはすべてのスライドをループし、テキストがないすべてのテキストボックスを削除, コードがオブジェクトを削除するたびに、そのオブジェクトがコレクションから削除され、カウントが減少するため、count変数は増分ではなくデクリメン
OutlookからWordに連絡先をコピーする
Sub CopyCurrentContact() Dim OutlookObj As Object Dim InspectorObj As Object Dim ItemObj As Object Set OutlookObj = CreateObject("Outlook.Application") Set InspectorObj = OutlookObj.ActiveInspector Set ItemObj = InspectorObj.CurrentItem Application.ActiveDocument.Range.InsertAfter (ItemObj.FullName & " from " & ItemObj.CompanyName)End Sub
このコードは、Outlookで現在開いている連絡先を開いているWord文書にコピーすることに注意してください。 このコードは、Outlookで検査のために現在開いている連絡先がある場合にのみ機能します。
サポートとフィードバック
Office VBAまたはこのドキュメントについて質問またはフィードバックがありますか?, をご覧ください事務所VBA支援のフィードバックに関するご案内のできる方法の支援を提供します。
-