VBAコードで文字を指定行に入力する方法

このQ&Aのポイント
  • VBAコードを使用して、ワードで指定した行に文字を入力する方法について教えてください。
  • ワードのマクロを使用して、上から6行目に文字を入れる方法を知りたいです。
  • エクセルのように、指定した行に文字を入力することはできるのでしょうか?Rangeオブジェクトを使用する方法があるのか教えてください。
回答を見る
  • ベストアンサー

指定した行に文字を入力するVBAコードは?

ワードのマクロで、「上から6行目に文字を入れる」 と言う事をしたい場合は、 ------------------ Sub Macro1() Selection.TypeParagraph Selection.TypeParagraph Selection.TypeParagraph Selection.TypeParagraph Selection.TypeParagraph Selection.TypeText Text:="あああ" End Sub や Sub Macro2() Dim i As Long For i = 1 To 5 Selection.TypeParagraph Next Selection.TypeText Text:="あああ" End Sub ------------------ としなくては駄目でしょうか? エクセルのように、「●行目に文字を入力する」と指定できないかどうかが知りたいです。 オブジェクトブラウザで「Range」を検索したら、Rangeオブジェクトがあったので、 行の指定ができるのかな?と思いました。 ご教授よろしくお願いします。

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

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4848/10262)
回答No.1

activedocument.Paragraphs(6).Range.Text= "ああああ" とか。

by3qwers
質問者

お礼

うーん、なぜでしょう? 頂いたコードを実行すると、 「実行時エラー:「5941」指定されたコレクションのメンバは存在しません。」 になってしまいます。

関連するQ&A

  • 『エクセル』 vbaでオートフィルができない

    Sub Macro1() Range("a1:a10").Select Selection.AutoFill Destination:=Range("A1:A10"), Type:=xlFillSeries End Sub がエラーになります。 内容は「RangeクラスのAotofillメソッドが失敗しました」 となります。 Sub Macro2() Dim i As Long For i = 1 To 10 Cells(i, 1) = i Next End Sub や Sub Macro3() Dim i As Long i = 1 While i <= 10 Cells(i, 1) = i i = i + 1 Wend End Sub と同じような動きをAutoFillを使ってVBAで行いたいのですが むりでしょうか? というのも、 A1に長い関数式を入れて A10000までオートフィルしたいのですが 手作業だと時間がかかるためマクロで行いたいです。 アドバイス宜しくお願い致します。

  • エクセルVBAで5行目からオートフィルタモードに設定したいたい

    抽出項目が5行目にあり、オートフィルタを5行目から表示させたいのですが、うまくいきません。 Macro1では項目が消えてしまい、▼が1行目に、Macro2では項目は残りますが、▼は同じく1行目になってしまいます。どうしたら5行目にオートシェイプの▼が配置できるでしょうか? Sub Macro1() Range("A5").Select Selection.AutoFilter End Sub Sub Macro2() Range("A5").AutoFilter End Sub

  • VBA超初心者です

    皆さんのお知恵を拝借させてください。 Sub Macro1() ' ' Macro1 Macro ' マクロ記録日 : 2007/12/1 ユーザー名 : 101 ' Dim pearend As Integer Dim code As Integer Dim codeend As Integer Dim sheet_name As String Dim dayend As Date Sheets("商品名").Select Range("A4").Select Selection.End(xlDown).Select pearend = Selection.Row() For l = 4 To pearend Step 2 For r = 2 To 3 Cells(l, r).Select code = Cells(l, r).Value Select Case code Case 1000 To 1999 sheet_name = "1000" Case 2000 To 2999 sheet_name = "2000" Case 3000 To 3999 ssheet_name = "3000" Case 4000 To 4999 sheet_name = "4000" Case 5000 To 5999 sheet_name = "5000" End Select Sheets(sheet_name).Select Range("B4").Select Selection.End(xlToRight).Select codeend = Selection.Column() Range("A5").Select Selection.End(xlDown).Select dayend = Selection.Row() For i = 2 To codeend If code = Cells(4, i).Value Then Range(Cells(dayend, i), Cells(5, i)).Select Selection.Copy Sheets("商品名").Select Range("K3").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False End If Next Next Next End Sub というマクロをつくってみたのですが、何順目かあたりから For r = 2 To 3 のrがなぜか4になっています。正直知識がないのでさっぱりわかりません。どこに問題があるか詳しい方教えてください。

  • 指定した文字列が含まれる行を削除する

    データの照合をしています。 指定した文字列が、「O列」に入っていたら、その行を削除し、 行をつめる というようなマクロを組みたいのですが、エラーがかかってしまいます。 (下のVBは、ネットで公開されていたのを使用させていただいております。) Sub Macro1() Const col As String = "A" '文字列が入力されている列 Dim idx As Long Dim keyWord keyWord = Application.InputBox("削除対象の文字列は?", Type:=2) If TypeName(keyWord) <> "Boolean" And Len(keyWord) > 0 Then   For idx = Cells(65536, col).End(xlUp).Row To 1 Step -1     If InStr(Cells(idx, col).Value, keyWord) > 0 Then '    If Application.CountIf(Rows(idx), "*" & keyWord & "*") > 0 Then       Rows(idx).Delete     End If   Next idx End If End Sub 「下から3行目のNEXTに対応するforがない」とエラーがでます。 ご教授、お願いいたします。

  • ある列の計算式が入っているセルの行のみを削除したい

    Excel2007でマクロを作成している超初心者です。 B列のセルには 空白 文字列 計算式が入っています。このうち計算式の入っているセルの行のみを削除したいのですが、どうしたらよろしいでしょうか?  セルには =IF(C17="","",+K17*L17)という式が入っています。 次式は0か空白の場合ですが、これをどのように修正したらできるでしょうか? Sub 行の削除() Dim i As Long For i = 1 To Selection.End(xlDown).Columns Step 1 Select Case Range("B" & i).Value Case 0, "" Columns(i).Delete End Select Next End Sub

  • Excelセル範囲内の値のみ1行空欄にする

    下記コードでは1行づつ挿入により下段までずれてしまいます。 Excelセル範囲内の値のみ1行づつ開けるにはどのようにすれば良いでしょうか。 どなたか解る方よろしくお願いします。 Sub 空欄1行() Dim i As Long If TypeName(Selection) <> "Range" Then Exit Sub With Selection For i = .Rows.Count To 2 Step -1 Intersect(.Cells(i, 1).EntireRow, .Columns).Insert xlDown Next End With End Sub

  • ExcelVBAで範囲指定

    セル範囲、D3:E15とG3:G15とI3:I15をクリアする場合 Sub Macro2() Range("D3:E15,G3:G15,I3:I15").ClearContents End Sub と書くと思います。 この15行目を変数にする場合 Sub Macro3() Dim x As Long x = 15 Range("D3:E" & x & ",G3:G" & x & ",I3:I" & x).ClearContents End Sub と書く以外にもっと簡単な範囲指定の方法はないでしょうか?

  • VBAで複数行の指定

    VBA教えてください  初心者です やりたい事 for next文を使用しbook1のシート内N~R行にある文字が入っていたなら book2のシート内のB行の文字を消すといった内容です 考えたコード sub test() dim c as variant dim i as long Set c = Workbooks("book2.xls").ActiveSheet With Workbooks("book1.xls").ActiveSheet For i = 1 To 100 If .Cells(i, 14) Like "*受入*" Then 'もし、14行目のセルのどれかに『受入』という文字が入っていたら c.Cells(i, 2).Clear 'その2行の条件に当てはまるセルをクリアする End If Next i End With end sub これではbook1のシートに内のN行しか反映されません 複数行N~Rに反映させるコードわからないです 教えてもらえるとすごく助かります。

  • ワード2007、ヘッダーのマクロでフォントサイズを変更したい。

    ワード2007、ヘッダーのマクロでフォントサイズを変更したい。 windows7、word2007 ヘッダーにファイル名、ページ数、作成日を表示させるマクロを”マクロの記録”で作りました。 夫々にはフィールドを指定してあります。 Sub header() ' ' header Macro ' ' If ActiveWindow.View.SplitSpecial <> wdPaneNone Then ActiveWindow.Panes(2).Close End If If ActiveWindow.ActivePane.View.Type = wdNormalView Or ActiveWindow. _ ActivePane.View.Type = wdOutlineView Then ActiveWindow.ActivePane.View.Type = wdPrintView End If ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:= _ "FILENAME \* DBCHAR ", PreserveFormatting:=True Selection.TypeText Text:=vbTab Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:= _ "PAGE \* ArabicDash ", PreserveFormatting:=True Selection.TypeText Text:=vbTab & " " Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:= _ "CREATEDATE \@ ""作成日 :ggge年M月d日"" ", PreserveFormatting:=True Selection.TypeParagraph Selection.TypeText Text:=vbTab & vbTab & " " Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:= _ "SAVEDATE \@ ""更新日 :ggge年M月d日"" ", PreserveFormatting:=True WordBasic.GoToFooter Selection.TypeText Text:=vbTab Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:= _ "PAGE ", PreserveFormatting:=True Selection.TypeText Text:="/" Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:= _ "NUMPAGES ", PreserveFormatting:=True End Sub 文書本文の文字サイズは13ptですがフッター部は9ptにしたいと思います。 修正する方法を教えて貰えるとありがたいです。 よろしくお願いいたします。

  • VBA どこでもセル選択

    教えて頂いたVBAなのですがもう一つ Sub Macro1() Dim Ws01 As Worksheet Dim Counter As Long, i As Long, j As Long Dim INP As String Set wS = Worksheets("Sheet4") wS.Cells.ClearContents For i = 3 To ActiveSheet.UsedRange.Rows.Count INP = "" For j = Selection(1).Column To Selection(Selection.Count).Column If Cells(i, j) = 1 Then INP = INP & Cells(2, j) & "," End If Next j Counter = Counter + 1 If INP <> "" Then wS.Cells(Counter, "A") = Left(INP, Len(INP) - 1) End If Next i End Sub -------------------------------------------------------------- For i = 3 のところを3としないでどのセル(行)にも対応させたいのですが どうすればいいでしょうか?

専門家に質問してみよう