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で質問しましょう!
似たような質問が見つかりました
- ノートパソコン ページ番号の入れ方について 3 2023/02/16 17:11
- Excel(エクセル) 製品番号での整列と、検索に関して 3 2023/06/28 19:20
- Excel(エクセル) エクセルのVBAで上の表の最下行を求める 4 2022/09/14 15:22
- Visual Basic(VBA) VBA 画面上のカーソルに文字数字を入力するコードを教えて下さい 1 2022/10/30 10:31
- Visual Basic(VBA) エクセルVBA 2 2022/04/27 13:29
- Visual Basic(VBA) ExcelからAccessのテーブルに書き込む時に時間がかかる 1 2022/10/14 20:38
- Visual Basic(VBA) VBAで早押しゲームを作りたい 4 2022/05/12 13:46
- Word(ワード) wordのテキストボックスが変! 2 2022/10/13 17:32
- Visual Basic(VBA) VBAでPDFのアクティブページ番号取得 1 2023/05/25 12:41
- Excel(エクセル) Excelシートのある番地の文字が一致したすべての行を別シートに転記する方法 11 2022/10/25 08:43
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
パワポの複数ページにまたがる...
-
ワードの表の行が広がってしまう
-
WORDの表がいきなり改ページさ...
-
Word2010 表の微妙な移動がで...
-
数独のアプリで表の中の数字を...
-
Wordで歌詞カードを作りたい
-
wordで表を挿入した後に表の前...
-
エクセルの列幅、行の高さ
-
ワードの表の列幅を文字ぎりぎ...
-
ワード2003 で 表のタイトル...
-
Excel2000ですが、表の行数の出...
-
Wordの表と表をつなげることは...
-
エクセルで列幅だけの書式コピ...
-
エクセルで空行を印刷しない方法
-
ワードの表がくっついてしまいます
-
2つの表の差額を計算(EXCEL)
-
棟方志功の版木
-
エクセルで列数を増やすには?
-
wordで表の枠を残して中身のみ削除
-
Word で 改ページ をさせない...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
パワポの複数ページにまたがる...
-
ワードの表の行が広がってしまう
-
ワードの表の列幅を文字ぎりぎ...
-
表と票の違いは?
-
ワード、上下中央揃えにしたい...
-
Word2016の表で困っています。
-
ワードの表がくっついてしまいます
-
Wordで表を作ったら右下に四角...
-
WORDの表がいきなり改ページさ...
-
wordで表を挿入した後に表の前...
-
ワード横書き2段、左に英語、...
-
ワードで空白、行を維持したま...
-
ワードの表体裁が壊れる
-
ワードの表が重なってしまう。
-
[Excel] 以下のような、行が...
-
エクセルで3次元の表を作りたい
-
wordで 次のページに同じ表(レ...
-
Wordの表の列の高さを固定する...
-
Excelについて質問です。 表の...
-
エクセルで空行を印刷しない方法
おすすめ情報