• ベストアンサー

ワードの表から値を取得するマクロコードは

ワードVBA初心者です。ワードのドキュメントの表から指定のセルの値を取得するコードを教えてください。エクセルならばX=Cells(1,2).Valueで1行2列のセルの値が取得できますが。ご教授宜しくお願いいたします。

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

  • ベストアンサー
  • pyom
  • ベストアンサー率57% (11/19)
回答No.1

http://www2.moug.net/app/bbs/message.php?cat=wordvba&id=20040120-000001 のサイトで適当と思われる内容がありましたので、確認ください。

参考URL:
http://www2.moug.net/app/bbs/message.php?cat=wordvba&id=20040120-000001
gunma1005
質問者

お礼

有難う御座いました。 X = ActiveDocument.Tables(1).Cell(1, 2).Range.Text でOKでした。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセルマクロで指定したセルの値を表示変更し転記

    エクセルマクロで指定したセルの値を表示変更して指定したセルに転記したい セルA列に書式が標準で 20101117と入っています。 これをB列にセルの値も表示も共に11/27としたいです。 (セルの値は2010/11/17でセルの表示は11/27ではまずいです。) A列にデーターがあるまで繰り返したいです。 行数は作業毎で常に違います。 以下の記述では出来ませんでした。 よろしくお願いします。 Sub 日付() 行 = 2 Do If Cells(行, 1).Value = "" Then Exit Do Cells(行, 2).Value = Mid(行, 1,5,2) &"/"& RIGHT(行, 1,2) 行 = 行 + 1 Loop End Sub

  • CSVでファイルを出す方法

    excelにデータをVBAを使い書き出しています。例えば、 cells(行1、列1).Value=data1 cells(行1、列2).Value=data2 cells(行1、列3).Value=data3 cells(行2、列1).Value=data4 cells(行2、列2).Value=data5 ...... と1行書き込んだら次の行へ、次の行へといった具合に書き込んでいます。 excelなので直接セルを指定して書き込むことができていますが、excelの かわりにcsvとして書き込みをしたい場合、どのような処理をしてテキストに 出せばよいのでしょうか?

  • セルの値が0はクリアするマクロ

    エクセル2003です。 ある集計表において 4行目のH列からAM列まで 数値データがあります。 最終行は常に変化します この表内にてセルの値が0のセルは セル内を空白にしたいです。 以下のマクロを作成しましたが If Cells(処理行, 8).Value = 0 Then Cells(処理行, 8).ClearContents をあと(処理行, 13)から(処理行,31) まで記述しなければなりません。 構文的にも処理的にも不利? と思うので、なにかいい方法を教えてください。 Sub 数字0クリア() '2012年2月3日節分 Dim 最終行 '最終列をG列で求めます 最終行 = Cells(Rows.Count, 7).End(xlUp).Row Application.ScreenUpdating = False For 処理行 = 4 To 最終行 If Cells(処理行, 8).Value = 0 Then Cells(処理行, 8).ClearContents End If If Cells(処理行, 9).Value = 0 Then Cells(処理行, 9).ClearContents End If If Cells(処理行, 10).Value = 0 Then Cells(処理行, 10).ClearContents End If If Cells(処理行, 11).Value = 0 Then Cells(処理行, 11).ClearContents End If If Cells(処理行, 12).Value = 0 Then Cells(処理行, 12).ClearContents End If If Cells(処理行, 13).Value = 0 Then Cells(処理行, 13).ClearContents End If Next 処理行 Application.ScreenUpdating = True MsgBox "終了しました" End Sub

  • データの値取得マクロ

    Sub Macro1() ''Worksheets("Sheet1").Activate ' addrw = Range("b65536").End(xlUp).Offset(1).Row Cells(addrw, 2).PasteSpecial end sub でB列の最終行を取得しその後、最終行の次のセルから追加のデータを貼り付けるマクロを作成しました。 このあと、追加のデータを貼り付ける前のB列の最終行の値と貼り付け後のB列の最終行の値を取得したいのですがどうすればいいでしょうか?

  • Word vbaからexcel vbaへ値を渡すことができますか?

    Word vbaからexcel vbaへ値を渡すことができますか? 現在Wordでvbaを組んでいますが、Wordで取得した値をexcel vbaで利用したいのに変数の値がnullになってしまい四苦八苦しています。Application間で値を渡すには何か特別な処理がいるのでしょうか?(参照は設定済みです) やりたい事は、Wordで「ShipTo」文字列をsearch→後ろの番号を変数へ格納→excel vbaを起動→シートの表中からWordで取得した番号を元に文字列を検索しセルに入れる(VLOOKUPを使用)→セルの文字列をWord vbaへ返しWord側で利用、という処理です。excel vbaの起動は以下のように記述しています。 ------------------excelVBAの起動 Sub getExcelTable() Dim xLobj As Object, myObj As Object Set xLobj = CreateObject("excel.application") xLobj.Visible = True Set myObj = xLobj: workbooks.Open (ThisDocument.Path & "\sample.xls") myObj.Run ("'sample.xls'!getStr") MsgBox strA ←これがでない MsgBox strB ←これがでない Set xLobj = Nothing End Sub -----------------excel vbaのコード Option Explicit Dim endRow As Integer, ShipTo As Variant Dim strA As Variant, strB As Variant Sub getStr() endRow = Range("a65536").End(xlUp).Row MsgBox ShipTo ←これがでない Cells(endRow + 2, 1).Select Selection.Value = "=VLOOKUP(" & ShipTo & ",$A$1:$T$" & endRow & ",3,0)" strA = ActiveCell.Text Cells(endRow + 2, 2).Select Selection.Value = "=VLOOKUP(" & ShipTo & ",$A$1:$T$" & endRow & ",13,0)" strB = ActiveCell.Text End Sub Word vbaからexcel vbaは起動します。Word側、excel側で使う関数はグローバル変数にし、variant型にしてみましたが値がわたりません(Wordでは取得できています)。Application間で値を渡す方法、もしくは根本的にもっとうまい方法があればご教示ください! WinXP、Office2003を使用です。

  • セルの値だけを貼り付けるマクロ:アクティブの1行下

     セルの値を  そのセルの1行上のセルの値と同じものにする。  ・・・というマクロを組んでいます。それに関して多くの方よりアドバイスを頂戴しました。 次のような数式で、ひとまず上手くいきました。 Cells(RR, 7) = Cells(RR - 1, 7).Value   (RRとは、アクティブになっているROWを、AS LONG として宣言したものです。) ■次に、「(RR,2) ・・・ すなわち、2列目のセルについては(G7)セルの値だけを貼り付けたかったので、・・・頂戴したアドバイスを元に、いろいろ試し・・・たのですが、うまくいきません。  具体的には、次のような数式をトライしました。  ↓ Range(RR, 2).Value = Range("G7").Value ・・・これで、ダメだったので、 Cells(RR, 2) = Cells("G7").value ・・・でも試しましたが、ダメでした。  このような場合は、どうしたらよいでしょうか?     アドバイスを、どうぞよろしくお願いいたします。 

  • VBAで複数の行のナンバーを取得し、その行の列の値を参照して値を入れる

    下記のことをしたいのですが、調べてもわかりません。 どなたか教えてください。 よろしくお願いします。 内容: エクセルシートのA列の値が11である行ナンバーを取得(複数ある可能性があります)する。 その行のE列(5列目)の値と他のテーブルの値を参照して所定の値をA列の値が11である行のE列(5列目)に返す。 以下のVBAを書いてみましたがうまくいきません。 ----------------------------------------------------------------- Dim ROWCOUNT As Integer Dim row_array() As Variant Dim i As Integer '全行数を取得 ROWCOUNT=Worksheets("sheet1").Range("A1",Range("A65536").End(xlUp)).Count For i = 1 To ROWCOUNT If Cells(i, 1).Value = 11 Then Cells(i,1).Offset(0,5).Value=WorksheetFunction.VLookup(Cells(i, 1).Offset(0, 5).Value, Worksheets("sheet2").Range("A1:H1786"), 3, False) End If Next I

  • ワードの表のセル幅をマクロを使って変更したい

    ワード2002を使っています。 エクセルからワードに、3列×12行の表を複数貼り付けました。 すべての表の、3列目の列幅を「110」に変更したいのでマクロ化したいのですが、 マクロの記録コマンドを利用すると表の列が選択できず困っています。 次の操作をマクロ化するにはどうしたらよいでしょうか? #対象の表内の任意のセルにカーソルを置いた状態でスタート    ↓ (1)表の3列目を選択する    ↓ (2)表のプロパティの「セル」タブで、「幅を指定する」を「110mm」に設定する どうぞよろしくお願いいたします。

  • エクセルで別シートの値を取得したいです。

    エクセルで質問があります。 別シートからセル値を取得したいです。 ただ、セル番地は行番号、列番号で指定し、 行、列番号はセルに入力してある値を使いたいです。 例 Aシート(値格納シート) B1セル値=1000 -------------- Bシート(値取得シート) A列=行番号入力 B列=列番号入力 C列=Aシートの取得関数 A2セル値=1 B2セル値=2 C2セル=1000(取得値) C2セルの関数に、A2とB2の値を使って Aシートのセル値を取得したいです。 よろしくお願いします。

  • exelのbookまたがりでセルをコピー貼付けたい

    エクセル2010のvbaで質問です。 シンプルなデータ表から、印刷向きレイアウトにした別BOOKにセル内容を 送りたいのですが、うまくいきません。 開いてあるbookまたがりでセル値のコピーをします。送り側は連結セルです。 行、列を可変として順次ループで回すので、RANGEでなくCELLS(行、列)の指定で行いますが、 実行時エラーが出ます。(インデックスが有効範囲にありません) Sheets(OUTSHEET).Cells(行,列).Value = Sheets(INSHEET).Cells(行,列).Value ↑現在この書き方でエラーになります。うまくいく方法はないのでしょうか。 なお、手動でコピーして、送り側セルでエンター押すとできます。 でもそのマクロ記録ではセル番地指定なので、自動化にできません。 詳しい方、よろしくお願いします。

専門家に質問してみよう