BEAGLE-HC 医薬品、医療機器の研究・開発 ポータルサイト
 現在位置 : HOME > ITの活用 プログラミング > Word コードライブラリアン(記述の規則)
くすりのこと
 治療薬の最前線
データブック
 ヘルスケア市場
 データブック
 (売上ランキング)
ニュース
 企業ニュース
 (パイプラインニュース)
 (財務・決算ニュース)
 (M&Aニュース)
 メディアニュース
ITの活用
 バリデーション
 セキュリティ
 WORD文書の作成
 プログラミング
 (Word/VBA)
 (Excel/VBA)
 (Access/VBA)
 (SAS)
 (SQL)
イベント
 イベントカレンダ
製薬会社研究
 製薬会社
 製薬会社研究
 決算短信一覧
 
 
●マクロ・ユーザーフォームの保存場所
●プロセジャ
●オブジェクト
●プロパティとメソッド
●オブジェクト【アプリケーション】
●オブジェクト【ドキュメント】
●オブジェクト【ブックマーク】
●オブジェクト【セクション】
●オブジェクト【パラグラフ】
●オブジェクト【センテンス】
●オブジェクト【ワード】
●オブジェクト【キャラクター】
●オブジェクト【表】
●オブジェクト【図】
●オブジェクト【SELECTION】
●オブジェクト【RANGE】
●オブジェクト変数(SETステートメント)
●オブジェクトの記述の省略
●プログラムで使えるデータ【変数】
●プログラムで使えるデータ【定数】
●プログラムで使えるデータ【配列】
●プログラムで使えるデータ【その他】
●演算子
●コメント
 
本章では、Word/VBA の記述ルールやプログラムの操作対象となるオブジェクトについて説明します。
 
マクロ・ユーザ−フォームの保存場所 ↑ このページの最初へ
【モジュール】
 VBAで作成したプログラムを管理するための入れ物。宣言文と複数のプロシージャーで構成されます。モジュールには以下の2種類があります。
ThisDocument 文書に依存したプロセジャーを作成する場合に使用します。
標準モジュール 汎用的なプロセジャーを作成する場合に使用します。標準モジュールで宣言した変数・定数や作成したプロシージャは、すべてのモジュールで使用することができます。
クラスモジュール ドキュメント・パラグラフなどのイベントプロセジャを管理します。
 
【フォーム】
 フォームは、固定ダイアログと言われる種類のフォームウィンドウを自由にデザインして作成し表示利用できる機能です。
フォームの作成は、プロジェクトウィンドウのProject(VBA)を右クリックして、メニューを開き、「挿入」→「ユーザ-フォーム」の順に選択します。
 
プロセジャー ↑ このページの最初へ
 VBAコードのひとつの単位。プロセジャーから別のプロセジャーを呼び出すことができます。プロセジャーを呼び出すときは引数を指定して値を渡します。プロセジャーには以下の3種類があります。
イベントプロセジャー 特定のオブジェクトの特定のイベントに応じて実行されるプロシージャでクラスモジュールで管理される。
Sub プロセジャー 単独で完結する処理などを記述。実行結果を返す必要がない処理に使用。
Function プロセジャー 実行結果を返す処理に使用。
 
オブジェクト ↑ このページの最初へ
【オブジェクト】
 Word オブジェクトは階層順に編成され、階層の最上位には Application と Document という 2 つのメイン クラスがあります。
 Word オブジェクト モデルは、ユーザー インターフェイスとほとんど同じです。たとえば、Application オブジェクトはアプリケーション全体を表し、Document オブジェクトはそれぞれ 1 つの Word 文書を表し、Paragraph オブジェクトは 1 つの段落に対応します。
 文書は文字で構成されます。文字は単語に編成され、単語は文として構造化されます。文は段落の中に配置され、段落はセクションの内部に配置されます。各セクションにはそれぞれのヘッダーとフッターが含まれます。

 各オブジェクトには、オブジェクトの操作やオブジェクトとの対話処理に使用できる、多くのメソッドとプロパティがあります。

  ActiveDocument  作業中の文書全体
  Paragraph      段落(改行マークで区切られた部分)
  Sentence       文(読点(。)で区切られた部分)
  Words        単語
  Characters     文字
  Selection      文書の選択部分(マウスで指定できます)
  Range        文書の選択部分(プログラム中で指定します)
プロパティとメソッド ↑ このページの最初へ


【プロパティ】
オブジェクトが持つ属性(性質、特徴)の記述です。

Application オブジェクトのプロパティ
  Active Window プロパティ
  ActiveDocument
  ActivePrinter
  ActiveWindow
  AutoCorrect
  Caption
  CapsLock
  DisplayAlerts
  DisplayStatusBar
  FileSearch
  Path
  Options
  Selection
  UserName
  Visible

【メソッド】
オブジェクトを動作させる記述です。メソッドは引数を持っています。 また、引数は必ず指定 しなければならないものと、省略可能なものがあります。

Application オブジェクトのメソッド
  CheckSpelling
  Help
  Move
  Resize
  Quit
  SendFax

   詳細は MSDN ライブラリ へ  
オブジェクト【アプリケーション】 ↑ このページの最初へ
Application オブジェクトは Word アプリケーションを表し、他のすべてのオブジェクトの親になります。このオブジェクトのメンバは、通常、Word 全体に適用されます。このオブジェクトのプロパティとメソッドを使用して、Word の環境を制御できます。

  'ウインドウを消す
  Application.Visible = False   'プロパティ

  'Wordを終了する
  Application.Quit          'メソッド
オブジェクト【ドキュメント】 ↑ このページの最初へ
文書は文字で構成されます。文字は単語に編成され、単語は文として構造化されます。文は段落の中に配置され、段落はセクションの内部に配置されます。各セクションにはそれぞれのヘッダーとフッターが含まれます。Document オブジェクトには、このような構造にマッピングされる、次のコレクションがあります。

  ?Characters
  ?Words
  ?Sentences
  ?Paragraphs
  ?Sections
  ?HeadersFooters
オブジェクト【ブックマーク:しおり】 ↑ このページの最初へ
 Bookmark オブジェクトは、開始位置と終了位置を指定して文書内の連続する領域を表す点で、Range オブジェクトおよび Selection オブジェクトと似ています。

 ブックマークは、文書内の位置にマークを付けたり、文書内のテキストのコンテナとしてマークを付けるのに使用します。
Bookmark オブジェクトは、カーソル位置で構成されます。文書全体が Bookmark オブジェクトになることもあります。

 Bookmark は文書と一緒に保存される、文書内の名前付きの場所と考えることができます。

▼操作方法 : ブックマークを挿入する
ブックマークを挿入したい箇所にカーソルを移動する
 ↓
メニュー[挿入]−[ブックマーク]をクリック
 ↓
[ブックマーク]ダイアログ−[ブックマーク名]欄に、その箇所を示すわかりやすい名前を入力
 ↓
[ブックマーク]ダイアログ−[追加]ボタンをクリック

  詳細はマイクロソフトWord Bookmark オブジェクトを参照してください。
オブジェクト【セクション】 ↑ このページの最初へ
「セクション」というグループに分けることで、本来文書全体に効いてしまう機能が、セクションごとに個別に設定できるようになります。

  
'ドキュメント(文書)内のセクションの数をカウントします
  MsgBox ActiveDocument.Sections.Count

  '1番目のセクションを選択します
  ActiveDocument.Sections(1).Range.Select

  'ドキュメント(文書)内のすべてのセクションを操作します
   
Sub SectionAll()
     Dim EachSection As Section
     For Each EachSection In ActiveDocument.Sections
     EachSection.Range.Select
     Next
   End Sub
オブジェクト【パラグラフ】 ↑ このページの最初へ
Wordでは入力し始めた先頭の文字から、段落記号(改行記号)までを1段落(パラグラフ)と数えます。

  'ドキュメント(文書)内のパラグラフ(段落)の数をカウントします
  MsgBox ActiveDocument.Paragraphs.Count

  
'1番目のパラグラフ(段落)を選択します
  ActiveDocument.Sections(1).Range.Select

  'ドキュメント(文書)内のすべてのパラグラフ(段落)を操作します
  Sub ParagraphAll()
    Dim EachParagraph As Paragraph
    For Each EachParagraph In ActiveDocument.Paragraphs
    EachParagraph.Range.Select
    Next
  End Sub
オブジェクト【センテンス】 ↑ このページの最初へ
先頭の文字から、読点(。)で区切られた部分)、または、段落記号(改行記号)までを1センテンスと数えます。

  'ドキュメント(文書)内のセンテンスの数をカウントします
  MsgBox ActiveDocument.Sentences.Count

  
'1番目のセンテンスを選択します
  ActiveDocument.Sentence(1).Select

  'ドキュメント(文書)内のすべてのセンテンスを操作します
  Sub SentenceAll()
    Dim EachObj As Object
    For Each EachObj In ActiveDocument.Sentences
      MsgBox EachObj
    Next
  End Sub
オブジェクト【ワード】 ↑ このページの最初へ
先頭の文字から、単語の最後の文字、または、読点(。)で区切られた部分)、または、段落記号(改行記号)までを1ワードと数えます。

  'ドキュメント(文書)内のワード(単語)の数をカウントします
  MsgBox ActiveDocument.Words.Count

  
'1番目のワード(単語)を選択します
  ActiveDocument.Words(1).Select

  'ドキュメント(文書)内のすべてのワード(単語)を操作します
  Sub ParagraphAll()
    Dim EachParagraph As Paragraph
    For Each EachParagraph In ActiveDocument.Paragraphs
    EachParagraph.Range.Select
    Next
  End Sub
オブジェクト【キャラクター】 ↑ このページの最初へ
文字

  'センテンス1内の文字数をカウントします
  ActiveDocument.Sentence(1).Characters.Count
オブジェクト【表】 ↑ このページの最初へ
  'ドキュメント(文書)内のテーブル(表)の数をカウントします
    MsgBox ActiveDocument.Tables.Count 

  'ドキュメント(文書)内のすべてのテーブル(表)を操作します
  Sub TableAll()
    Dim EachTable As Table
    For Each EachTable In ActiveDocument.Tables
      MsgBox Replace(EachTable.Columns(1).Cells(1).Range.Text, vbCr & Chr(7), "")
    Next
  End Sub
 
Shapes【図】 ↑ このページの最初へ
 文書内および、すべてのヘッダーとフッターに含まれる すべての図形を表します。

 '文書内の図について順次評価する
  Dim Shp As Shape
  For Each Shp In ActiveDocument.Shapes
    If Shp.Type = msoTextBox Then    'テキストボックス(17)の場合
      Shp.TextFrame.TextRange.Font.Name =        "Arial" 'フォント名(プロパティ)
      Shp.TextFrame.TextRange.Font.Size = 14       'フォントサイズ(プロパティ)
    ElseIf Shp.Type = msoCanvas Then   '描画キャンバスの場合
    ElseIf Shp.Type = msoGroup Then   'グループ化された図形(6)の場合
    ElseIf Shp.Type = msoFreeform Then  'フリーフォーム(5)の場合
    ・・・
  next
 
オブジェクト【SELECTION】 ↑ このページの最初へ
 Selection オブジェクトは、現在選択されている領域を表します。(マウス、プログラムで指定します)
Word のユーザー インターフェイスでテキストを太字にするなどの処理を行う場合に、テキストを選択、または強調表示してから、書式を適用します。

 Selection オブジェクトは、文書内に常に存在しています。
テキストが選択されていない場合は、カーソル位置を表します。
1 つの選択範囲で、連続していない複数のテキスト ブロックを囲むこともできます。

 Selection メソッド
MSDN
オブジェクト【RANGE】 ↑ このページの最初へ
 Range オブジェクトは、文書内の連続した領域を表し、開始文字位置と終了文字位置によって定義されます。(プログラムで指定します)
Range オブジェクトは、1 つに限定されていません。
同じ文書内に複数の Range オブジェクトを定義できます。Rangeオブジェクトには次の特徴があります。

 ・単独のカーソル位置、テキストの範囲、または文書全体で構成されます。
 ・空白、タブ文字、段落記号などの非印刷文字を含みます。
 ・現在の選択範囲を表す領域、または現在の選択範囲とは別の領域を表すことができます。
 ・常に表示されている選択範囲とは異なり、文書内には表示されません。
 ・このオブジェクトは文書と共に保存されることはなく、コードの実行中にのみ存在します。
オブジェクト変数(SETステートメント) ↑ このページの最初へ
「オブジェクトへの参照を代入します(アドレスを持ちます)。オブジェクト変数は4バイトの領域を持ちます。

 ex.
   Sub Sample()
     Dim wdApp As Object
     Set wdApp = CreateObject("Word.Application.8")
     MsgBox wdApp.Version
     wdApp.Quit
     Set wdApp = Nothing
   End Sub

変数を使うことで、「Object)」などのう記述を省略できます。
オブジェクトの記述の省略 ↑ このページの最初へ
ひとつのオブジェクトに対して複数のメソッドやプロパティを指定する場合、対象となるオブジェクト名を省略する記述法です。

With オブジェクト名/ユーザー定義型変数名
  操作
End With

ex.
省略形を使用しない場合
  Range("A1").FontColorindex = 3
  Range("A1").FontSize = 20

省略形を使用した場合
  With Range("A1")
   .FontColorindex = 3
   .FontSize = 20
  End With
プログラムで使えるデータ【変数】 ↑ このページの最初へ
文書の保存に関係なく、VBAプログラム実行が終わると破棄されます。

【Publicモジュールレベルの宣言】
プロジェクト内のどのモジュールでも有効
Public 変数名 As String

【Privateモジュールレベルの宣言】
同じモジュール内のどのプロセジャーでも有効
Private 変数名 As String

【プロセジャーレベルの宣言】
プロセジャー内でのみ有効
Dim 変数名 As String

【変数の型】
バイト型           Byte
整数型            Integer
長整数型           Long
単精度浮動小数点型   Single
倍精度浮動小数点型   Double
通貨型            Currency
日付型            Date
文字列型           String
ブール型           Boolean
バリアント型         Variant  型を規定しないデータ型(配列の宣言で指定することが多い)
オブジェクト型        Object、Control、Workbook、Worksheet、Range・・・・
ユーザー定義型
プログラムで使えるデータ【定数】 ↑ このページの最初へ
文書の保存に関係なく、VBAプログラム実行が終わると破棄されます。

【定数の宣言】
Const 定数名 As 型 = 定数

ex
 Const A As String = "AAA"


改行マーク
 CR = Chr(13) '改行コード for Macintosh
 LF = Chr(10) '改行コード for Unix/Linux、UTF-8他
 CRLF = Chr(13) & Chr(10) '改行コード for Windows

  ※メモ帳(Microsoft)    
    ・メモ帳はUTF-8を認識するが、改行コードは文字化けする
    ・LFはメモ帳で開くと"↑"と表示される

  ※Chr関数は Unicode 文字を返します。(必ず 2 バイト文字を返します。)
プログラムで使えるデータ【配列】 ↑ このページの最初へ
文書の保存に関係なく、VBAプログラム実行が終わると破棄されます。

【静的配列】
要素の個数が定まっている配列。インデックス番号の既定値は0

ex
Dim AAA(9) As String         '10の要素で構成
Dim AAA(9,10) As String        '10×11の要素で構成

【動的配列】
宣言時に要素の個数が定まっていない配列。インデックス番号の既定値は0

ex
Dim AAA() As String
ReDim AAA(5)                '実行時に5個の要素で構成する配列として宣言しなおす
ReDim Preserve AAA(10)        '10個の配列に宣言し直す。これまでのデータは保持される
プログラムで使えるデータ【その他】 ↑ このページの最初へ
プロパティ
 文書が保存される時にプロパティの内容もいっしょに保存される。
 文書の利用者が追加、更新、削除をできる。

文書変数
 文書が保存される時に文書変数の内容もいっしょに保存される。
 文書の利用者が追加、更新、削除をできない。
 フィールドで値を参照できる。
 Word VBA で、Document.Variableを使って追加、更新、削除する。

   ☆詳細はマイクロソフトサポートオンラインを参照してください。

レジストリ
 VBAオブジェクトのメソッドでVBA用の決められた場所を使う。
 Systemオブジェクトのメソッドで好きな場所を使う。
 文書の保存に関係なく値を保存できる。
 保存するレジストリのキーがわかれば、文書の利用者が追加、更新、削除できる。

外部ファイル
 任意のテキストファイルやXMLファイルに値を保存する。
演算子 ↑ このページの最初へ
算術演算子          ^(べき乗)、−(マイナス)、*(乗算)、/(除算)、¥(商)、Mod(余り)、
                 +(加算)、−(減算)
文字列連結演算子      &
比較演算子          =、<>、<、>、<=、>=、
Like演算子          Like
Is演算子            Is
論理演算子          Not,And、Or、Xor、Eqv、Imp
コメント ↑ このページの最初へ
文字の先頭にシングルクオテーション『'』を付ける

↑ このページの最初へ

   ご意見・ご感想をお寄せください。 ‖ お問い合わせはこちらから ‖ このサイトについて           サイトマップ  ‖
  Copyright 2006 - 2013 uTRAM Corp. All Rights Reserved
 
PHARCIS(ヘルスケア最新情報提供)
Facebook for PHARCIS
ClinMark8
アクセスランキング
(2013年5月)

1位 企業ニュース
2位 売上ランキング
3位 メディアニュース
4位 製薬会社
5位 治療薬の最前線
6位 決算短信一覧
7位 データブック
8位 製薬会社研究
9位 イベントカレンダ
10位 パイプラインニュース