
Word のVBAについて初心者なのですが、質問があります。
ワード文書内の表について、カーソルのある位置の行番号や列番号を取得する方法は
Informationを使用して取得することができるのはわかったのですが、
文書内にある、複数の表について、行番号や列番号のように、
カーソル位置の表番号って取得することができるのでしょうか?
文書内の複数の表の総数をActiveDocument.Tables.Countで数えることができるらしい
というのはネットで調べてわかったのですが、現在選択されている(カーソル位置)表が
文章内の何番目の表なのかというのができるのかどうか・・・・。
きっとInformationのように一つのコードではなくて、いろいろ組み合わせて
数えるのではないかと推測しているのですが・・・・。
すみません、誰かわかる方がいらっしゃいましたら教えてください。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
#1です。
ブックマークはその名の通り「しおり」です。
他のOfficeアプリケーションでも使います。
ブックマークの説明
http://www.beagle-hc.com/It_program_word0/Word1. …
http://msdn.microsoft.com/ja-jp/library/aa288619 …
http://support.microsoft.com/kb/182305/ja
(上記はMacのWordですが内容はそのまま使えます)
質問が、
>カーソル位置の表番号って取得することができるのでしょうか?
>文書内の複数の表の総数をActiveDocument.Tables.Countで
>数えることができるらしい
という条件を満たしたものであればということで、
質問のご要望に沿ってアクティブになっている表の
位置を求めるコードを提示した、という次第です。
それ以上のことはしていません。
オブジェクトが多いのですが、特に難しいという
コードではなく、ごく単純なコードですから、
ごゆっくりお茶でも飲みながら眺めてください。
それと、
>あと、一番最後のSelectでTbkを選んで、Deleteする操作は、
>MsgBoxと何か関係があるのですか?
これは、まずMsgBoxで何を表示しようとしているのか
見てください。「表は " & j & "番目"」の中の
「j」です。「j」はどこで取得していますか。
Selectして、DeleteしているのTbkと名づけたしおりです。
コードの終わりにいらないものは破棄するという
プログラミングの作法に則ったものです。この
意味はプログラミングの中でいろいろな
ことに遭遇すると自覚するようになります。
したがって何の関係もありません。
以上です。
No.2
- 回答日時:
ご質問では「カーソルのある位置の行番号や列番号」と「カーソル位置の表番号」を取得するということでしょうか?まあ、こんな所でしょうか。
私のWordのVBAのコードが気に入らない人もいるかもしれませんが……。'//ThisDocument に貼り付けてください。
Sub TableInfo()
'ネストされた表は、情報が出ません。
Dim sTbl As Table
Dim Tbls As Tables
Dim i As Long, col As Long, rw As Long
On Error Resume Next
Set sTbl = Selection.Tables(1)
On Error GoTo 0
If sTbl Is Nothing Then MsgBox "表がないか、表を選択していません。", vbExclamation: Exit Sub
If sTbl.NestingLevel > 1 Then MsgBox "ネストされた表は、表示できません。", vbExclamation: Exit Sub
Set Tbls = ActiveDocument.Tables
For i = 1 To Tbls.Count
If sTbl.Range.Start = Tbls.Item(i).Range.Start Then
col = sTbl.Range.Cells(1).Column.Index
rw = sTbl.Range.Cells(1).Row.Index
MsgBox "現在は、" & i & "番目の表で、" & rw & "行目の " & col & " 列目のセルを指しています。"
End If
Next
Set sTbl = Nothing
Set Tbls = Nothing
End Sub
返事がおそくなり申し訳ございません。
表番号の取得方法だけでなく、一緒に行番号、列番号の取得もできるマクロを
教えて頂けるとは思ってもいなかったので、うれしいです。
ただ、VBAの初心者のため、解読に少し時間がかかりそうですが、
試してみます。解読中にわからないことがあったらまた、質問します。
ありがとうございました。
No.1
- 回答日時:
どこかのサイトで見かけたのですが、
どこか忘れました。以下のような
感じです。
Sub GetSelectNumber()
Dim i As Integer
Dim j As Integer
Dim tbl As Table
Selection.Bookmarks.Add ("Tbk")
For i = 1 To ActiveDocument.Tables.Count
Set tbl = ActiveDocument.Tables(i)
tbl.Select
If Selection.Bookmarks.Exists("Tbk") Then
j = i
Exit For
End If
Next i
ActiveDocument.Bookmarks("Tbk").Select
ActiveDocument.Bookmarks("Tbk").Delete
MsgBox "選択されている表は " & j & "番目"
End Sub
返事が遅くなり申し訳ございません。
Bookmarksというコードがあるのをはじめて知りました・・・。
Bookmarksというのは、VBAのヘルプを見ても
いまいち使い方がよくわからなかったのですが、
何か対象物を置いて、その対象物をチェックするということですか?
あと、一番最後のSelectでTbkを選んで、Deleteする操作は、
MsgBoxと何か関係があるのですか?
ん~~~~、Tbkという変数をAddってことは、
ブックマークに追加しているということでしょうか?
追加してそのブックマークを表の変わりに数えているということですかね?
すみません、考えてはいるんですが、なんとなくという感覚でしかわからなくて。。。。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
Word VBA 表中の空白行を削除する方法
Word(ワード)
-
Wordマクロ、選択した複数行を1行ずつ読み込みたい
Word(ワード)
-
WORD VBA 繰り返し処理
Word(ワード)
-
-
4
MS Office Word のマクロで行列の現在位置を取得したいのですが?
Word(ワード)
-
5
ワード上Shapeの位置情報を統一基準で取得したい
Visual Basic(VBA)
-
6
Word版VBで表の任意の箇所を取得する(Cellメソッド)
Visual Basic(VBA)
-
7
ワードのマクロで段落番号(文字も含む)取得ってできますか
Word(ワード)
-
8
Cell内の一部を指定する方法(Word VBA)
その他(Microsoft Office)
-
9
WORDマクロで特定文字から別文字までを範囲選択したい
Word(ワード)
-
10
ワードの図形をコピー&ペイストのマクロ
Word(ワード)
-
11
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
12
WORD VBA 表の複数行選択を教えてください
Visual Basic(VBA)
-
13
WordのマクロでのSectionsの意味を知りたい。
Word(ワード)
-
14
Wordのマクロで選択中の行番号を取得したい
Word(ワード)
-
15
ワードマクロで指定範囲内の改行の数を調べたいと思っています。下記のよう
Word(ワード)
-
16
エクセルStatusBar表示が変化しない
Excel(エクセル)
-
17
Word VBA 表中の空白行を削除する方法
Word(ワード)
-
18
エクセルのマクロでワードの任意のテキストボックスへ文字列を書き込む方法を誰か教えていただけませんか
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ワードの表の行が広がってしまう
-
パワポの複数ページにまたがる...
-
ワードの表の列幅を文字ぎりぎ...
-
ワードの表がくっついてしまいます
-
ワード、上下中央揃えにしたい...
-
ワードで空白、行を維持したま...
-
Wordの表の列の高さを固定する...
-
Word2016の表で困っています。
-
ワードの表体裁が壊れる
-
ワードでの表のセル分割
-
エクセルで3次元の表を作りたい
-
ワードの表が重なってしまう。
-
かぎかっこが消せません
-
wordで表の枠を残して中身のみ削除
-
エクセルで長い表を途中で折り...
-
ワードで表を作ってから、その...
-
Wordで表を作ったら右下に四角...
-
ワードで行の真ん中に文字を入...
-
エクセル・一部分のみ行高さ変更
-
エクセル
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
パワポの複数ページにまたがる...
-
ワードの表の行が広がってしまう
-
ワードの表がくっついてしまいます
-
ワードの表の列幅を文字ぎりぎ...
-
Wordの表の列の高さを固定する...
-
表と票の違いは?
-
ワード、上下中央揃えにしたい...
-
Wordで表を作ったら右下に四角...
-
エクセルで3次元の表を作りたい
-
[Excel] 以下のような、行が...
-
ワード横書き2段、左に英語、...
-
ワードで空白、行を維持したま...
-
ワードで表を作ってから、その...
-
wordで表を挿入した後に表の前...
-
WORDの表がいきなり改ページさ...
-
ワードの表が重なってしまう。
-
ワードの表体裁が壊れる
-
WordにExcelの表を貼り付けると...
-
EXCELで作成した表をWordに横向...
-
Word2016の表で困っています。
おすすめ情報