Word VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


12 / 45 ページ ←次へ | 前へ→

【699】ワード文書内の表の操作について
質問  チャブー  - 10/7/4(日) 0:31 -

引用なし
パスワード
   エクセルから、新規ワード文書を開いて、そのワード文書の中に表を作成しているのですが、表に続く部分に記述したい文字列が、表の中に表示されてしまいます。表を解除?する命令が必要なのでしょうか?

以下が私のコードです。どこに問題があるのか指摘いただけますと幸いです。

※エクセルVBAに関する質問ですが、内容はワードVBAに関するものが中心なのでこちらに投稿しました。

*****

Dim wrd As Object
Set wrd = CreateObject("word.application")
wrd.Visible = True
Set doc = wrd.documents.Add
Set sl = wrd.Selection

sl.TypeText "こんにちは" ''’文書に「こんにちは」と表示
sl.TypeParagraph ''’改行

Set sl = wrd.Selection
Set objrange = sl.Range() '''Rangeの設定
doc.Tables.Add objrange, 2, 2 ''’行数・列数を指定
Set objtables = doc.Tables(1)

objtables.Cell(1, 1) = "a" ''’表に値を挿入
objtables.Cell(1, 2) = "b"
objtables.Cell(2, 1) = "c"
objtables.Cell(2, 2) = "d"

sl.TypeText "ハロー" ''’←この「ハロー」が表の中に表示されてしまいます。表に続く文書の部分に表示させたいのですが。。
sl.TypeParagraph
・ツリー全体表示

【698】Re:数値列タイトルを検出しページ更新
お礼  mimikoqa  - 10/6/18(金) 11:17 -

引用なし
パスワード
   ▼H. C. Shinopy さん:
>8〜10桁の数字を検索し、その数字の前に改ページを
>追加するということでいいでしょうか?
>
>1.まず、テスト用の文書を用意し、下の文字列をコピーして貼り付け。
>
>12345678
>あああああああああああああ
>あああああああああああああ
>あああああああああああああ
>999999999
>あああああああああああああ
>
>2.[マクロの記録]で下記の文字列置換の手作業する。
>[検索する文字列]に「([0-9]{8,10})」、[置換後の文字列]に「^m\1」を指定する。
>[オプション]に[ワイルドカードを使用する]のチェックをONにする。
>[すべて置換]ボタンを押す。
>検索置換が終わったら、[検索と置換]ダイアログボックスを閉じて、[Del]キーを押す(すべて置換後に文書の先頭に戻るはずなので)。
>
>その結果がこれ↓。
>実際の文書で正しく動くかどうか…後は必要に応じて手直しして下さい。
>
>Sub Macro1()
>'
>' Macro1 Macro
>'
>'
> Selection.Find.ClearFormatting
> Selection.Find.Replacement.ClearFormatting
> With Selection.Find
>  .Text = "([0-9]{8,10})"
>  .Replacement.Text = "^m\1"
>  .Forward = True
>  .Wrap = wdFindContinue
>  .Format = False
>  .MatchCase = False
>  .MatchWholeWord = False
>  .MatchByte = False
>  .MatchAllWordForms = False
>  .MatchSoundsLike = False
>  .MatchFuzzy = False
>  .MatchWildcards = True
> End With
> Selection.Find.Execute Replace:=wdReplaceAll
> Selection.Delete Unit:=wdCharacter, Count:=1
>End Sub


見事なご回答に感謝いたします。
何の手直しをすることなくcopy,pasteさせていただき実行させていただきました。
1999個の文書が一瞬のうちに処理され所望の改ページが出来上がりました。
全くの感激です。自分の力量不足を痛感し、改めまして
.Text = "([0-9]{8,10})"
.Replacement.Text = "^m\1"
.MatchWildcards = True
の使い方を勉強し直す所存です。
有難うございました。厚く御礼を申し上げます。
・ツリー全体表示

【697】Re:数値列タイトルを検出しページ更新
回答  H. C. Shinopy  - 10/6/18(金) 9:22 -

引用なし
パスワード
   8〜10桁の数字を検索し、その数字の前に改ページを
追加するということでいいでしょうか?

1.まず、テスト用の文書を用意し、下の文字列をコピーして貼り付け。

12345678
あああああああああああああ
あああああああああああああ
あああああああああああああ
999999999
あああああああああああああ

2.[マクロの記録]で下記の文字列置換の手作業する。
[検索する文字列]に「([0-9]{8,10})」、[置換後の文字列]に「^m\1」を指定する。
[オプション]に[ワイルドカードを使用する]のチェックをONにする。
[すべて置換]ボタンを押す。
検索置換が終わったら、[検索と置換]ダイアログボックスを閉じて、[Del]キーを押す(すべて置換後に文書の先頭に戻るはずなので)。

その結果がこれ↓。
実際の文書で正しく動くかどうか…後は必要に応じて手直しして下さい。

Sub Macro1()
'
' Macro1 Macro
'
'
 Selection.Find.ClearFormatting
 Selection.Find.Replacement.ClearFormatting
 With Selection.Find
  .Text = "([0-9]{8,10})"
  .Replacement.Text = "^m\1"
  .Forward = True
  .Wrap = wdFindContinue
  .Format = False
  .MatchCase = False
  .MatchWholeWord = False
  .MatchByte = False
  .MatchAllWordForms = False
  .MatchSoundsLike = False
  .MatchFuzzy = False
  .MatchWildcards = True
 End With
 Selection.Find.Execute Replace:=wdReplaceAll
 Selection.Delete Unit:=wdCharacter, Count:=1
End Sub
・ツリー全体表示

【696】Re:数値列タイトルを検出しページ更新
回答  mimikoqa  - 10/6/17(木) 10:11 -

引用なし
パスワード
   ▼りる さん:
>mimikoqa さん、こんばんは。
>>必ず8ないし10桁の数値列タイトルで始まり、次の行に複数行のWORD文書が続く文書構成を1つの単位構成とします。この単位構成が数千もあります。ここでの課題はこの単位構成毎に改ページさせることです。8ないし10桁の数値列タイトルを検出して改ページさせようと思いますがなかなか思うようにいきません。よろしくご指導のほどをお願いします。
>
>たとえばどんな感じの文書ですか?
>12345678
>あああああああああああああ
>あああああああああああああ
>あああああああああああああ
>999999999
>あああああああああああああ
>
>こんな?

早速、お目通しいただき有難うございます。
全くこの通りです。ただし、文字列とWORD文書の間に空き行が入ったり、WORD文書内に空き行が入ったりはします。また、数値列は全くのランダムな配列で規則性はありません。以上ですがよろしくお願いします。
・ツリー全体表示

【695】Re:数値列タイトルを検出しページ更新
発言  りる  - 10/6/16(水) 21:50 -

引用なし
パスワード
   mimikoqa さん、こんばんは。
>必ず8ないし10桁の数値列タイトルで始まり、次の行に複数行のWORD文書が続く文書構成を1つの単位構成とします。この単位構成が数千もあります。ここでの課題はこの単位構成毎に改ページさせることです。8ないし10桁の数値列タイトルを検出して改ページさせようと思いますがなかなか思うようにいきません。よろしくご指導のほどをお願いします。

たとえばどんな感じの文書ですか?
12345678
あああああああああああああ
あああああああああああああ
あああああああああああああ
999999999
あああああああああああああ

こんな?
・ツリー全体表示

【694】数値列タイトルを検出しページ更新
質問  mimikoqa  - 10/6/16(水) 14:59 -

引用なし
パスワード
   必ず8ないし10桁の数値列タイトルで始まり、次の行に複数行のWORD文書が続く文書構成を1つの単位構成とします。この単位構成が数千もあります。ここでの課題はこの単位構成毎に改ページさせることです。8ないし10桁の数値列タイトルを検出して改ページさせようと思いますがなかなか思うようにいきません。よろしくご指導のほどをお願いします。
・ツリー全体表示

【693】Re:ドキュメント内検索でヒットした箇所を...
お礼  田吾作  - 10/6/5(土) 22:23 -

引用なし
パスワード
   閉じます。
お騒がせしました。
・ツリー全体表示

【692】ドキュメント内検索でヒットした箇所をハイ...
質問  田吾作  - 10/6/2(水) 18:05 -

引用なし
パスワード
   こんばんは。よろしくお願いいたします。

編集→検索
表示されるウィンドウで検索タブを選択し、
検索する文字列に
「検索したい文字列」
と指定し、
「見つかった全ての項目を強調表示する」
にチェックを入れ、
「すべて検索」
を実行する作業をマクロの自動記録したものです。

Sub Macro1()
'
' Macro1 Macro
' 記録日 2010/06/02 記録者 hoge
'
  Selection.Find.ClearFormatting
  With Selection.Find
    .Text = "検索したい文字列"
    .Replacement.Text = ""
    .Forward = True
    .Wrap = wdFindContinue
    .Format = False
    .MatchCase = False
    .MatchWholeWord = False
    .MatchByte = False
    .MatchAllWordForms = False
    .MatchSoundsLike = False
    .MatchWildcards = False
    .MatchFuzzy = True
  End With
End Sub

このマクロの自動記録で生成したコードを実行しても何も
起こりません。
確かに「検索したい文字列」はドキュメント上に存在します。

マクロで行いたい作業は、
指定した文字列をドキュメント全体で検索し、ヒットした全箇所
をハイライト表示させる、ということです。

コードをどのように書き換えればいいでしょうか?
ご教示お願いいたします。
・ツリー全体表示

【691】Re:Word VBA 囲い文字
お礼  CAN  - 10/5/10(月) 8:46 -

引用なし
パスワード
   りる様

ありがとうございます。
イメージしていた物がこんなにシンプルに出来るなんて感激です。

私なりにやってみた方法ですと○の中の文字の位置や大きさがむちゃくちゃで
フィールドコード内をどうやってやっつけるのか悩んでました。

本当にありがとうございました
・ツリー全体表示

【690】Re:Word VBA 囲い文字
回答  りる  - 10/5/9(日) 15:16 -

引用なし
パスワード
   CAN さん、こんにちは。

>vbaを使ってwordの文章中の決まった文字を囲い文字にするにはどうしたらよいのでしょうか?
>例えば『あいうえおかきくけこ』の『あ』だけ○で囲んだAに、『い』だけ○で囲んだ『B』したいです。
>よろしくお願いいたします。
あをA、いをBに置換して拡張書式の囲み文字を設定しました。

ちなみに、↓こういう文書でテストしました。

あいうえおかきくけこ
BBAABB
あきくけこ

Sub まとめて置き換える()
  Dim s1 As String, s2 As String
  '2パターン
  For NN = 1 To 2
   Select Case NN
     Case 1: s1 = "あ": s2 = "A"
     Case 2: s1 = "い": s2 = "B"
   End Select
   With ActiveDocument.Range.Find
     Do
      '文字を探す s1
      resp = .Execute(FindText:=s1, Wrap:=wdFindContinue, Replace:=wdReplaceOne)
      If resp = True Then
        '○で囲んだ新しい文字 s2
        .Parent.ModifyEnclosure Style:=wdEncloseStyleSmall, _
              Symbol:=wdEnclosureCircle, EnclosedText:=s2
      Else
        '置き換える文字がなくなった
        Exit Do
      End If
     Loop
   End With
  Next
End Sub
・ツリー全体表示

【689】Word VBA 囲い文字
質問  CAN E-MAIL  - 10/5/6(木) 15:05 -

引用なし
パスワード
   どなたかおわかりになる方教えてください。

vbaを使ってwordの文章中の決まった文字を囲い文字にするにはどうしたらよいのでしょうか?
例えば『あいうえおかきくけこ』の『あ』だけ○で囲んだAに、『い』だけ○で囲んだ『B』したいです。
よろしくお願いいたします。
・ツリー全体表示

【688】Re:連番とインデントを設定したい。
発言  りる  - 10/5/5(水) 11:17 -

引用なし
パスワード
   ゆう さん、こんにちは。

>4行目の 6.6 が 13.2
>7,8行目の 22 が 28.6 に変わります。
両方に6.6が足されている感じですよね。

そのまんまのマクロで、文字列全部選択して実行したらうまく行ったような気がします(実際の文字列がどんな風になっているのかわからないので適当に入れた文章でしたが)。
・ツリー全体表示

【687】Re:Wordの章、項、目のスタイル設定
発言  りる  - 10/5/5(水) 10:37 -

引用なし
パスワード
   花丸 さん、こんにちは。
かなり遅いですが。

>Wordのスタイル設定で質問があります。
>Wordで章、項、目をスタイルを使って設定しようと思います。

オフライン時のヘルプの「1 行に複数の段落番号を付ける」に書いてあるとおりにアウトラインを設定し、1.1.1.となっている書式のレベル1を「第1章」に変更しみたところお望みの結果(のよう)になりました。
・ツリー全体表示

【686】Re:脚注番号のフォントを調節するには?
回答  りる  - 10/5/5(水) 10:00 -

引用なし
パスワード
   ポンタ さん、こんにちは。
もう見ていないかもしれませんが、チェックしている人もいるようなので書いておきます。

>脚注のフォントサイズを調節する方法は、
>
>For i = 1 To ActiveDocument.Footnotes.Count
> ActiveDocument.Footnotes.Item(i).Range.Font.Size=フォントサイズ
>Next i
>
>でできますが、これだと、脚注番号のフォントサイズは元のままです。
>
>脚注番号のフォントサイズも調節する方法はありますか?

それらしいObjectが見つけられませんでしたが、手動で選択すればなんとかなるので、マクロで選択して何とかしてみました。

Sub TEMPO()
  Dim fn1 As Footnote, r1 As Range
  '脚注の数だけループ
  For Each fn1 In ActiveDocument.Footnotes
   Set r1 = fn1.Range
   r1.Select '脚注の文字列を選択
   Selection.MoveLeft '一つ左に移動
   Selection.StartOf Unit:=wdLine, Extend:=wdExtend '脚注の数字を選択
   '選択後指定
   Selection.Font.Name = "Courier New" 'Courier Newに
   Selection.Font.Size = 16      'サイズを16に
  Next
  '
  Set r1 = Nothing
End Sub
・ツリー全体表示

【685】ホームレス脱出!!
発言  宏先生  - 10/4/1(木) 18:09 -

引用なし
パスワード
   会社をリストラされ、嫁にも逃げられた私。
たまたま見つけたこのサイトでホームレス生活をま逃れることができました。
http://yescompile.com/sao/7xvxl78/
・ツリー全体表示

【684】連番とインデントを設定したい。
質問  ゆう  - 10/3/25(木) 11:02 -

引用なし
パスワード
   word2003を使っています。

段落の頭に連番を挿入し,連番の後に続いている文章に
インデントをかけて体裁を整えるマクロを作成しています。
マクロを実行すると,左から右のような体裁になることを
目指しています。

---------------------------------------------------------−−−−−
(実行前)                 (実行後)

こんにちは。おはようござい      1 こんにちは。おはようご
ます。                  ざいます。
 
どうもありがとうございまし      2 どうもありがとうござい
た。                   ました。

---------------------------------------------------------−−−−−

マクロの自動記録でできたマクロを実際に試してみたのですが,
うまくいきません。

具体的には,連番は入るのですが,以下のコードの5,7,8行目の
数値が異なったものになってしまいます。

4行目の 6.6 が 13.2
7,8行目の 22 が 28.6 に変わります。

分かる方,教えてください。よろしくお願いします。

《マクロの自動記録でできたコード》

  With ListGalleries(wdNumberGallery).ListTemplates(1).ListLevels(1)
    .NumberFormat = "%1"
    .TrailingCharacter = wdTrailingTab
    .NumberStyle = wdListNumberStyleArabic
    .NumberPosition = MillimetersToPoints(6.6)  ←4行目
    .Alignment = wdListLevelAlignRight
    .TextPosition = MillimetersToPoints(22)    ←7行目
    .TabPosition = MillimetersToPoints(22)    ←8行目
    .ResetOnHigher = 0
    .StartAt = 1
    With .Font
      .Bold = wdUndefined
      .Italic = wdUndefined
      .StrikeThrough = wdUndefined
      .Subscript = wdUndefined
      .Superscript = wdUndefined
      .Shadow = wdUndefined
      .Outline = wdUndefined
      .Emboss = wdUndefined
      .Engrave = wdUndefined
      .AllCaps = wdUndefined
      .Hidden = wdUndefined
      .Underline = wdUndefined
      .Color = wdUndefined
      .Size = wdUndefined
      .Animation = wdUndefined
      .DoubleStrikeThrough = wdUndefined
      .Name = ""
    End With
    .LinkedStyle = ""
  End With
  ListGalleries(wdNumberGallery).ListTemplates(1).Name = ""
  Selection.Range.ListFormat.ApplyListTemplate ListTemplate:=ListGalleries( _
    wdNumberGallery).ListTemplates(1), ContinuePreviousList:=False, ApplyTo:= _
    wdListApplyToWholeList, DefaultListBehavior:=wdWord10ListBehavior
・ツリー全体表示

【683】携帯で録画しちゃったww
お礼  穴マル E-MAIL  - 10/3/25(木) 7:25 -

引用なし
パスワード
   あまりにもエロイ尻してるから、バックから挿入してるところを携帯で録画しちゃったwww
すっげぇ濡れやすい女だったから、ズチュズチュって音もばっちり入ってるぜ(笑)
http://pa.xabrina.net/21ovmle/
・ツリー全体表示

【682】なんてアフォすぐるwww
発言  リーマン  - 10/3/17(水) 23:34 -

引用なし
パスワード
   「君みたいなブサイクに何をされても感じないよ?」とか言いながら
挿入した瞬間にガクガク逝ってるじゃねぇか!!!あはっはーww
http://cha.midnightowl.net/cswnlqn.html
てかオレ、何もしてねぇのに5万も貰ったんだけど??w
・ツリー全体表示

【681】Wordの章、項、目のスタイル設定
質問  花丸  - 10/3/4(木) 15:57 -

引用なし
パスワード
   こんにちは。
Wordのスタイル設定で質問があります。
Wordで章、項、目をスタイルを使って設定しようと思います。
1章 ABC
1-1 abc
1-1-1 cde

2章 CDE
2-1 cde
2-1-1 efg という様な感じで設定しようと思っています。

がしかし、
実際設定すると、
1章 ABC
1-1 abc
1-1-1 cde

2章 CDE
1-2 cde
1-1-2 efg

となってしまいます。
項と目が1章 からの連番になってしまいます。
こういう場合どう設定したらうまくいくでしょうか??
ご返信よろしくお願いいたします。
・ツリー全体表示

【680】脚注番号のフォントを調節するには?
質問  ポンタ  - 10/3/1(月) 1:11 -

引用なし
パスワード
   脚注のフォントサイズを調節する方法は、

For i = 1 To ActiveDocument.Footnotes.Count
 ActiveDocument.Footnotes.Item(i).Range.Font.Size=フォントサイズ
Next i

でできますが、これだと、脚注番号のフォントサイズは元のままです。

脚注番号のフォントサイズも調節する方法はありますか?

よろしくお願いいたします。
・ツリー全体表示

12 / 45 ページ ←次へ | 前へ→
ページ:  ┃  記事番号:
207596
(SS)C-BOARD v3.8 is Free