• ベストアンサー

Word選択文字の行番号の取得

 いつも閲覧・勉強させていただいています. よろしくお願いいたします.  VBAの場合,Information(wdStartOfRangeRowNumber)でできていたのですが, VB2008でWORD文書を選択した場合,行番号って取れるのでしょうか??? 色々試しているつもりなのですがうまくいきません. もしお詳しい方がいらっしゃいましたら,どうぞよろしくお願いいたします.

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

  • ベストアンサー
  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.1

Dドライブにあるテスト.DOCを開いて表示するものです。 ⇒開いて行なうので表示される位置は1行目になってます。 Dim wdApp As New Word.Application Dim wdDoc As Word.Documents = wdApp.Documents Dim myDoc As Word.Document = wdDoc.Open("D:\テスト.doc") wdApp.Visible = True MsgBox(wdApp.Selection.Information(Word.WdInformation.wdStartOfRangeRowNumber)) myDoc.Close(False) wdApp.Quit() 触ったばかり(Wordは)なので違ったらすいません。

camputer
質問者

お礼

どうもありがとうございます! あれ?「-1」になりました.. myDoc.Close(False) wdApp.Quit() をコメントアウトしたところ目的のファイルは開けているので大丈夫なようですが...  もう少し試してみます.どうもありがとうございます.

その他の回答 (2)

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.3

n-junです。 私のWordは2002なので、参照設定で 追加-COMの中の Microsoft Word 10.0 Object Library を追加しました。 そうすれば MsgBox(wdApp.Selection.Information( まで打ち込んだ時に次の候補として、 Word.WdInformation.wdStartOfRangeRowNumber が出てきました。 Wordは初めてでしたがExcelをチョコチョコいじってますので、 同じような設定になるだろうとテストしてみました。

camputer
質問者

お礼

 n-jun様  どうもありがとうございます! Word2007でMicrosoft Word 12.0 Object Libraryを追加して 試してみたところ何故かmsgboxの説明(MsgBox(Prompt As Object,[Buttons~) しか出ませんでしたorz VB2008だからでしょうか??? 今度Word2003の環境でも試してみます.  このたびは,アドバイスいただき助かりました. 本当にどうもありがとうございました!

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.2

#1です。 >あれ?「-1」になりました.. 私のは一番上から罫線がありましたので、DOCを開くとカーソルが罫線内にありました。 たぶん一番上の行が罫線の外になっているとか? 対応させるにはDOCを開いてカーソルを移動させてから、今回のコードの ”開く・閉じる”などを省いてあげないと無理かもしれません。 カーソルの移動自体は、マウスか他の手段(検索とか)に頼る形になるのではないかと。

camputer
質問者

お礼

 n-jun様 できました!どうもありがとうございます!^^  n-jun様のように初めてでもこういうコードが書ける方って, 経験でいきなり出てくるんでしょうか??それとも調べてらっしゃいますか??? 私の場合(まだまだオブジェクト思考に慣れておりません故), VBAのコードを頼りに wdApp.Selection.Information.wdStartOfRangeRowNumber としてみたり, wdApp.Selection.Information(wdStartOfRangeRowNumber)としてみたりして いつもいろんなパターンを書きまくってうまくいかないことがほとんどです...  たとえば今回のような MsgBox(wdApp.Selection.Information(Word.WdInformation.wdStartOfRangeRowNumber)) ってどのようにして思いつかれていらっしゃるのでしょうか??? もしよろしければ少しだけでもアドバイスいただけないでしょうか.. とんちんかんな質問でしたらどうもすみません.

関連するQ&A

  • Word のVBAについて初心者なのですが、質問があります。

    Word のVBAについて初心者なのですが、質問があります。 ワード文書内の表について、カーソルのある位置の行番号や列番号を取得する方法は Informationを使用して取得することができるのはわかったのですが、 文書内にある、複数の表について、行番号や列番号のように、 カーソル位置の表番号って取得することができるのでしょうか? 文書内の複数の表の総数をActiveDocument.Tables.Countで数えることができるらしい というのはネットで調べてわかったのですが、現在選択されている(カーソル位置)表が 文章内の何番目の表なのかというのができるのかどうか・・・・。 きっとInformationのように一つのコードではなくて、いろいろ組み合わせて 数えるのではないかと推測しているのですが・・・・。 すみません、誰かわかる方がいらっしゃいましたら教えてください。

  • Spreadの選択行の取得について

    いつもお世話になっております。 VB6、Spread3.0の環境でコーディングしています。 Spreadを単一行モードにして、1行だけ選択された 状態で選択された行の行番号を取得したいのです。 Me.vaSpread1.Row = Me.vaSpread1.SelModeIndex Me.vaSpread1.Col = 1 で取得しようとしても、うまくいきません。 どのようにすれば、行番号を取得できるのでしょう? ご存知のかたがおられましたら、よろしくお願い します。

  • Word文書の行番号について

    Word文書で横書き2段組み(1段30行)を作成しました。 行番号をふると左側には1から30まで表示されるのですが、右側は各行頭に数字のはしっこのようなものが見えている状態で、31から60という数字が見えていません。 印刷してみると、ちゃんと1から60までの番号がついて出来上がります。 印刷してみなくても、文書上で右側の番号がふられているのが分かるようにするにはどうしたらいいでしょうか? Word初心者です。分かりやすく教えていただければ幸いです。 よろしくお願いします。 Word2010 Wjndows7

  • ExcelVBAで選択されてる行番号を取得する方法

    Excelシートでどの行を選択してるのかをVBAで取得したいのです。 1行選択の場合や複数行選択。 あるいは飛び飛びでの選択もあります。 どうやって取得できるのでしょうか?

  • 選択行番号を取得して別シート貼り付ける方法

    VBAを使いsheet1の選択した行番号をsheet2のA1列に全て貼り付ける方法が分からなくて困っています。  ちなみに下記のVBAはsheet1上で実行するとメッセージボックスに選択行の数値が順番に表示されます。この選択行番号情報を全てsheet2のA1列に貼り付けたいのですが、どうすれば良いでしょうか?   選択行は最大400位になります。特にメッセージボックスに表示する必要はありませんので、メッセージボックス表示は不要です。 Sub 行番号取得() Dim r As Range For Each r In Selection.Rows MsgBox r.Row Next End Sub

  • Word2003:範囲選択についてお尋ねします

    Word2003についてお尋ねします。 文書上に、ある文章があったとします。 それを、きりとりなどをするために、 Shiftキー + ↑↓ で、いっかつに黒くしたいのです。 仮に、上の3行をそうするとします。 この時、カーソルが、上の「↑」の所にあったと します。「↑」からやると、「↑」の行全部が 黒く選択されず、半分だけ選択されてしまいます。 一太郎の場合は、その行全部も選択されます。 Wordも、何らかの設定で一太郎のようにできませんか? お手数ですが、どうぞよろしくお願いいたします。

  • Word2003の表の行数を取得するには

    お世話になっております。 表の行を複数選択された場合、VBA等でその行の番号を所得する事は出来るでしょうか。 たとえば[罫線]→[挿入]→[表]を選択し、 5行*1列の表を作成して、1行目と3行目と5行目を選択している場合、1と3と5の数字をVBAで取得したいのです。 出来ない場合は出来ないと回答頂けると助かります。 よろしくお願いします。

  • 秀丸で行番号を複数選択する方法は

    秀丸で行番号をとびとびに複数選択したいのですが、 shiftボタンを押すと、一つ目の選択した行から二つ目の選択した行までの間の行も 選択されてしまい、Ctrlを押すとすべての文字列が選択されてしまいます。 WordやExcelのように、任意の行を複数選択するにはどうしたらよいのでしょうか?

  • BASIC ListViewの選択された行番号を取得

    ActiveBasic4.23.00を使用しています。 ListViewで、ボタンを押すと選択されている行の番号(ListBoxで言うところのLB_GETCURSEL) を取得したいのですが、それらしい項目が見当たりません。 ご存知の方がいらっしゃいましたら、ご教授ください

  • Wordでページ番号を入れてから削除したら空白行が

    Word2007を使っています。 文書を仕上げた後で、ページ番号を入れようかと思い、下に入れてみたり上に入れてみたり、空白に入れてみたりしました。 結局入れない方が良いと思い削除したのですが、文書の一番上と一番下に空白行が入ってしまいました。その空白行を消したいと思ってその改行マークの所にカーソルを入れようとしても入りません。 どうしたら上下に入ってしまった空白をなくすことができるでしょうか。 教えてください。 宜しくお願い致します。

専門家に質問してみよう