Word VBA質問箱 IV

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

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


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

【871】Re:ファイル分割
質問  あおぎんこ  - 19/4/25(木) 19:17 -

引用なし
パスワード
   ▼マナ さん:

レスポンスありがとうございます。

>具体的には、どうなるのでしょうか?

今のコードですと、i=2のときに myPage=4 なのですが
3ページ目の頭に移動し、従って3ページ目の1ページ分しかコピーしません。
i=3のときmyPage=6 なのですが4ページ目の頭に移動し、4ページ目の1ページ分しかコピーしません。

文末がうまく取得できていないと思ったのは、作成された分割ファイルが型崩れしていたからですが、
.Range(myPageStart, myPageEnd).Copy 
の前に
.Range(myPageStart, myPageEnd).select
で選択範囲を明示してみたところ、
カーソルのあるページの末尾まできちんと選択されていましたので、こちらは問題なさそうです。きちんと確認しないまま投稿してしまい、申し訳ありません。


Selection.GoTo What:=wdGoToPage, Which:=wdGoToNext, Name:=myPage
↑このコードだと、myPageの数値にかかわらず、一つずつしか進まないようなのですがmypageのページ数に行くという意味ではないのでしょうね?
(すみません、Selection.GoToで検索してみたのですがいまいちどういう動きをするのか・・。)
指定ページに行くようなコードはあるのでしょうか?
検索の仕方もあるのでしょうが、なかなかこれというのが見つかりません。
ご教示いただけると幸いです。
よろしくお願いいたします。
・ツリー全体表示

【870】Re:ファイル分割
発言  マナ  - 19/4/24(水) 21:50 -

引用なし
パスワード
   ▼あおぎんこ さん:

>下記のコードでは、うまく2ページずつに分割できません。
>
>下記のコードで、分割の最終位置を取得しているのですが、これがうまくいって
>いないようで、最初の分割はうまくいくのですが、2番目からうまくいきません。


具体的には、どうなるのでしょうか?

>myPageEnd = .Bookmarks("\page").Range.End 
>は、アクティブなページの文末を取得していると思うのですが、
>このワードファイルが表で構成されているためか、うまく取得できていないようです。

こちらも、なぜそう思うのでしょうか。

myPageEnd = .Bookmarks("\page").Range.End -2

としたら、どうなりますか。

>  myPageStart = myPageEnd

そのかわりに、こっちは、+2で。

 
・ツリー全体表示

【869】ファイル分割
質問  あおぎんこ  - 19/4/24(水) 19:42 -

引用なし
パスワード
   ページの多いワードファイルを2ページずつ分割したいと思い、下記のコードを見つけました。
ワードVBAは今回初めてなので、意味を検索しながら試行錯誤中なのですが
下記のコードでは、うまく2ページずつに分割できません。

下記のコードで、分割の最終位置を取得しているのですが、これがうまくいって
いないようで、最初の分割はうまくいくのですが、2番目からうまくいきません。

myPageEnd = .Bookmarks("\page").Range.End 
は、アクティブなページの文末を取得していると思うのですが、
このワードファイルが表で構成されているためか、うまく取得できていないようです。

もう少し調べてみようと思いますが、検索をしてもあまり出てこないので
お詳しい方がいらっしゃれば、範囲指定の仕方についてヒントでもご教示いただけると助かります。
どうぞよろしくお願いいたします。


Sub 文書の分割()

 Dim mySplit As Variant '分割後の文書あたりのページ数
 Dim myTotalPage As Integer '分割対象の文書の総ページ数
 Dim i As Integer
 Dim iMax As Integer
 Dim actDoc As Document '分割対象の文書
 Dim newDoc As Document '分割後の文書
 Dim myPage As Integer
 Dim myPageStart As Long 
 Dim myPageEnd As Long
 
 'デフォルトの分割用のページ数
 Const myDefault As Integer = 2
  
 '印刷レイアウトに変更
 ActiveWindow.View.Type = wdPrintView

 Set actDoc = ActiveDocument
 
 '総ページ数
 myTotalPage = actDoc.Range.Information(wdNumberOfPagesInDocument)
 
 '何ページごとに分割するのか、ページ数を入力
 Do
  mySplit = InputBox("分割するページ数を入力してください。" & vbCr & _
           "総ページ数:" & myTotalPage, "文書の分割", myDefault)
  'キャンセルの場合終了
  If mySplit = vbNullString Then Exit Sub
  '総ページ数以上の場合に終了
  If mySplit >= myTotalPage Then Exit Sub
 Loop While IsNumeric(mySplit) = False
  
 '分割数を算出
 If myTotalPage Mod mySplit > 0 Then
  iMax = (myTotalPage \ mySplit) + 1
 Else
  iMax = (myTotalPage \ mySplit)
 End If
 
 '分割する開始位置を代入(初期値)
 myPageStart = 0
 
 For i = 1 To iMax
  
  '分割対象の文書を選択
  actDoc.Activate
  
  '分割を開始するページ番号
  myPage = i * mySplit
  
  'カーソル位置を移動
  Selection.GoTo What:=wdGoToPage, Which:=wdGoToNext, Name:=myPage
  
  '分割する範囲をコピー
  With ActiveDocument
   If i <> iMax Then
    '分割する最終位置を代入(最後の分割ではない場合)
    myPageEnd = .Bookmarks("\page").Range.End
   Else
    '分割する最終位置を代入(最後の分割の場合)
    myPageEnd = .Range.End
   End If
   '範囲を指定してコピー
   .Range(myPageStart, myPageEnd).Copy
  End With
  
  '新規文書の追加
  Set newDoc = Documents.Add
  
  '貼り付け
  newDoc.Range.Paste
  
  '次の分割の開始位置を代入
  myPageStart = myPageEnd
  
  DoEvents
  
 Next i
 
 '分割対象の文書の先頭にカーソルを移動
 With actDoc
  .Activate
  .Range(0, 0).Select
 End With
 
 Set actDoc = Nothing
 Set newDoc = Nothing
 
End Sub
・ツリー全体表示

【868】Re:フォルダ内文書の一括処理
お礼  nishi E-MAIL  - 19/2/22(金) 9:10 -

引用なし
パスワード
   亀マスターさま

早々のご回答をいただきありがとうございます。
返信が遅れて申し訳ございません。
ご察しのとおり、for Each〜 がよくわかっていないし
教えていただいたサイトも既に訪れていますが
なかなか、上手くいかずこの質問箱様の
お力を頂ければとたどり着いた次第です。
教えていただいたサイトをもう一度やり直して勉強してみたいと思います。

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

【867】Re:フォルダ内文書の一括処理
発言  亀マスター  - 19/2/20(水) 18:51 -

引用なし
パスワード
   1.指定したフォルダ内にあるWord文書を開く
2.書式設定を施す
3.保存して閉じる
4.Word文書がなくなるまで1〜3を繰り返す

という手順が必要になりますが、VBAにおける繰り返し処理についての基本は理解されているでしょうか。
「For Each ○○ in △△」という記述を見て何のことかわからないというのであれば、VBAの基本をある程度勉強してからの方がいいのではないのかなと思います。

「それくらいわかってる」ということでしたら、以下のサイトが参考になると思われます。
ht tps://tonari-it.com/word-vba-document-open-close/

このサイトの説明ではフォントの設定だけをしていますが、その代わりに今回記録したマクロを当てはめれば、全ての文書に同じ処理をできます。
(マクロ記録をそのまま使うと無駄が多いのですが、動くことは動くと思いますので、どこがどう無駄なのかはそのうち勉強してみてください)
・ツリー全体表示

【866】フォルダ内文書の一括処理
質問  nishi  - 19/2/19(火) 9:32 -

引用なし
パスワード
   初めての質問です。
wordにマクロの記録で書式を設定しました。
デスクトップ上のフォルダ内にある複数のword文書を一括処理をさせたいのですが(文書名の決まりはありません。数は20〜30文書)
マクロは下記に記します。Windows7 、office standard 2010です。
ご教示よろしくお願いいたします。

Sub 書式マクロ3()
'
' 書式マクロ3 Macro
'
'
  Selection.HomeKey Unit:=wdStory
  Selection.EndKey Unit:=wdLine, Extend:=wdExtend
  Selection.Font.Name = "MS P明朝"
  Selection.Font.Size = 16
  Selection.Font.Bold = wdToggle
  Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
  Selection.EndKey Unit:=wdLine
  Selection.TypeParagraph
  Selection.Font.Size = 11
  Selection.TypeParagraph
  Selection.MoveRight Unit:=wdCharacter, Count:=1
  Selection.EndKey Unit:=wdLine, Extend:=wdExtend
  Selection.Font.Name = "MS P明朝"
  Selection.Font.Size = 12
  Selection.ParagraphFormat.Alignment = wdAlignParagraphRight
  Selection.EndKey Unit:=wdLine
  Selection.TypeParagraph
  Selection.Font.Size = 11
  Selection.MoveRight Unit:=wdCharacter, Count:=1
  Selection.MoveDown Unit:=wdParagraph, Count:=1, Extend:=wdExtend
  Selection.EndKey Unit:=wdStory, Extend:=wdExtend
  Selection.Font.Name = "MS P明朝"
  Selection.Font.Size = 11
  Selection.ParagraphFormat.Alignment = wdAlignParagraphLeft
  With Selection.PageSetup
    .LineNumbering.Active = False
    .Orientation = wdOrientPortrait
    .TopMargin = MillimetersToPoints(35)
    .BottomMargin = MillimetersToPoints(30)
    .LeftMargin = MillimetersToPoints(30)
    .RightMargin = MillimetersToPoints(30)
    .Gutter = MillimetersToPoints(0)
    .HeaderDistance = MillimetersToPoints(15)
    .FooterDistance = MillimetersToPoints(17.5)
    .PageWidth = MillimetersToPoints(210)
    .PageHeight = MillimetersToPoints(297)
    .FirstPageTray = wdPrinterDefaultBin
    .OtherPagesTray = wdPrinterDefaultBin
    .SectionStart = wdSectionNewPage
    .OddAndEvenPagesHeaderFooter = False
    .DifferentFirstPageHeaderFooter = False
    .VerticalAlignment = wdAlignVerticalTop
    .SuppressEndnotes = False
    .MirrorMargins = False
    .TwoPagesOnOne = False
    .BookFoldPrinting = False
    .BookFoldRevPrinting = False
    .BookFoldPrintingSheets = 1
    .GutterPos = wdGutterPosLeft
    .LinesPage = 42
    .LayoutMode = wdLayoutModeLineGrid
  End With
End Sub
・ツリー全体表示

【865】Re:vba range.words コレクションのバグ?
発言  めめ  - 18/9/13(木) 14:39 -

引用なし
パスワード
   連投スマソ
コレクションへのアクセス方法でも結果が変わる?

Sub test3()
  Selection.Text = "マザー シスター チャイルド ファーザー "
  Dim r As Range
  Dim i As Long
  i = 1
  Debug.Print "For Each"
  For Each r In Selection.Words
    Debug.Print " " & CStr(i) & ":" & r.Text & ";"
    i = i + 1
  Next
  Debug.Print "Words(i)"
  For i = 1 To Selection.Words.Count
    Debug.Print " " & CStr(i) & ":" & Selection.Words(i).Text & ";"
  Next
End Sub

結果
For Each
1:ー ;
2:ー ;
3:チャイルド;
4:チャイルド ;
5:ファーザー;
6:ー ;
Words(i)
1:ー ;
2:シスター ;
3:チャイルド;
4: ;
5:ファーザー;
6: ;

For Each は使わないほうがよさげ。Words(i) も半角ブランクが引っ付いたり、単語と見做されたり安定しない。
・ツリー全体表示

【864】Re:vba range.words コレクションのバグ?
発言  めめ  - 18/9/13(木) 13:46 -

引用なし
パスワード
   コレクションの先頭にだけ発生するようなので、wordのバグだった場合の対策

Sub test2()
  With Selection
    .Text = "マザー ファーザー チャイルド"
    Debug.Print "6:" & .Words(1) & ";" & .Words(2); ";" & .Words(3) & ";2番目以降の音引きはOK"
    If .Words(1) = "ー " Then
      Debug.Print "対策:" & Left(.Text, InStr(.Text, "ー"))
    End If
  End With
End Sub

結果
6:ー ;ファーザー ;チャイルド;2番目以降の音引きはOK
対策:マザー

Words(2)の末尾に半角ブランクがついていることに注意
・ツリー全体表示

【863】vba range.words コレクションのバグ?
質問  めめ  - 18/9/13(木) 12:28 -

引用なし
パスワード
   Word2010 on Windows 7 32bitです。

サンプル
Sub test()
  Selection.Text = "マザー"
  Debug.Print "1:" & Selection.Words(1) & ";単語のみ"
  Selection.Text = "マザー "
  Debug.Print "2:" & Selection.Words(1) & ";単語+全角スペース"
  Selection.Text = "マザー "
  Debug.Print "3:" & Selection.Words(1) & ";単語+半角スペース"
  Selection.Text = "マザー チャイルド"
  Debug.Print "4:" & Selection.Words(1) & ";単語+全角スペース+単語"
  Selection.Text = "マザー チャイルド"
  Debug.Print "5:" & Selection.Words(1) & ";単語+半角スペース+単語"
  Selection.Text = "チャイルド マザー"
  Debug.Print "6:" & Selection.Words(1) & ";単語+半角スペース+単語"
End Sub

結果
1:マザー;単語のみ
2:マザー;単語+全角スペース
3:マザー;単語+半角スペース
4:マザー ;単語+全角スペース+単語
5:ー ;単語+半角スペース+単語
6:チャイルド;単語+半角スペース+単語

5のケース(音引き+半角スペース)で期待する結果を得られないのですが、こちらの環境だけでしょうか?
どなたか追試をお願いします。
・ツリー全体表示

【862】Re:改行がないワード文章に100桁毎に改行を...
お礼    - 18/8/15(水) 21:43 -

引用なし
パスワード
   マナさま

 本当にありがとうございました。
提供いただいたVBも、しっかりと稼働しました。
 置換も考えていたんですが、こういったやり方が
あったとは目から鱗でした。
 早速試してみます。ありがとうございました。
今後ともよろしくお願いいたします。

▼マナ さん:
>▼猿 さん:
>手作業(置換)でも
>
>検索する文字列:([ 0-9]{100})
>置換後の文字列:\1^p
・ツリー全体表示

【861】Re:改行がないワード文章に100桁毎に改行を...
発言  マナ  - 18/8/15(水) 14:51 -

引用なし
パスワード
   ▼猿 さん:
手作業(置換)でも

検索する文字列:([ 0-9]{100})
置換後の文字列:\1^p
・ツリー全体表示

【860】Re:改行がないワード文章に100桁毎に改行を...
発言  マナ  - 18/8/15(水) 13:52 -

引用なし
パスワード
   ▼猿 さん:

書式は無視してもよいなら

Option Explicit

Sub test()
  Dim arl As Object
  Dim s As String
  Dim i As Long

  Set arl = CreateObject("system.collections.arraylist")
  
  s = ActiveDocument.Range.Text
  
  For i = 1 To Len(s) Step 100
    arl.Add Mid(s, i, 100)
  Next
  
  Documents.Add.Range.Text = Join(arl.toarray, vbCr)

End Sub


・ツリー全体表示

【859】改行がないワード文章に100桁毎に改行を入...
質問    - 18/8/14(火) 22:14 -

引用なし
パスワード
    半角数字と空白のみが混在するワードに100桁毎に改行を入れたい
と思っています。(空白も1文字としてカウントする)

 例えは・・・
            ↓ここ(9)が100桁目     ↓ここ(8)が200桁目
 12345空空空空679・・・ 9【改行】1234567空空空34・・・8【改行】1234567

というような感じです。数字と空白の羅列自体には規則性はなく、また全体で何文字あるかは、不明というのが条件です。(255文字の時もあれば、35432文字の場合もあるような感じ。)  

 このようなワードマクロを組むことは可能でしょうか?可能であれば、
是非ともご教示ください。宜しくお願い致します。
・ツリー全体表示

【858】Re:word vbaで文字列を置換したい、見つか...
お礼  あお  - 18/6/11(月) 14:25 -

引用なし
パスワード
   本日会社で試したところ教えていただいたやり方でできました。本当にありがとうございました!

▼あお さん:
>こんにちは、いつもお世話になっています。
>wordのVBAで以下で置換をしようとしていて以下は問題なく動きます。
>word.application.selection.find.execute findtext:=置換前の文字列,replace:=wdreplaceall,replacewith:=置換後の文字列
>文字が見つからなかったときもエラーにならずに終了してしまうのですが、見つからなかったときはフラグを立てたいと思っています。
>そのようなことはできますでしょうか?
>wordは初心者、検索してExcelvbe内に書いてます。
・ツリー全体表示

【857】Re:word vbaで文字列を置換したい、見つか...
発言  あお  - 18/6/8(金) 20:52 -

引用なし
パスワード
   亀マスターさん、ありがとうございました!
月曜に会社でやってみます!!
聞く人もおらず調べても見つからず苦戦して久しぶりに投稿いたしました。
本当に助かります、教えてもらったページもよく読んでおきます(今後はここらで解決できるよう頑張ります)
また、月曜に投稿します


▼亀マスター さん:
>Executeメソッドは検索成功時にTrueを返し、失敗時にFalseを返します。
>ですので、以下のような形で判定できます。
>
>If Word.Application.Selection.Find.Execute FindText:="文字列A", Replace:="文字列B" = True Then
>  '成功時の処理
>Else
>  '失敗時の処理
>End If
>※Ifの中で=Trueはなくても動きますが、わかりやすくするためにあえて入れています。
>
>また、FindオブジェクトのFoundプロパティも同様の値を返すので、以下のようにしてもOKです。
>
>With Word.Application.Selection.Find
>  .Execute FindText:="文字列A", Replace:="文字列B"
>  If .Found = True Then
>    '成功時の処理
>  Else
>    '失敗時の処理
>  End If
>End With
>
>
>ht tps://msdn.microsoft.com/ja-jp/vba/word-vba/articles/find-execute-method-word
>ht tps://msdn.microsoft.com/ja-jp/vba/word-vba/articles/find-found-property-word
・ツリー全体表示

【856】Re:word vbaで文字列を置換したい、見つか...
回答  亀マスター  - 18/6/8(金) 20:14 -

引用なし
パスワード
   Executeメソッドは検索成功時にTrueを返し、失敗時にFalseを返します。
ですので、以下のような形で判定できます。

If Word.Application.Selection.Find.Execute FindText:="文字列A", Replace:="文字列B" = True Then
  '成功時の処理
Else
  '失敗時の処理
End If
※Ifの中で=Trueはなくても動きますが、わかりやすくするためにあえて入れています。

また、FindオブジェクトのFoundプロパティも同様の値を返すので、以下のようにしてもOKです。

With Word.Application.Selection.Find
  .Execute FindText:="文字列A", Replace:="文字列B"
  If .Found = True Then
    '成功時の処理
  Else
    '失敗時の処理
  End If
End With


ht tps://msdn.microsoft.com/ja-jp/vba/word-vba/articles/find-execute-method-word
ht tps://msdn.microsoft.com/ja-jp/vba/word-vba/articles/find-found-property-word
・ツリー全体表示

【855】word vbaで文字列を置換したい、見つからな...
質問  あお  - 18/6/8(金) 14:35 -

引用なし
パスワード
   こんにちは、いつもお世話になっています。
wordのVBAで以下で置換をしようとしていて以下は問題なく動きます。
word.application.selection.find.execute findtext:=置換前の文字列,replace:=wdreplaceall,replacewith:=置換後の文字列
文字が見つからなかったときもエラーにならずに終了してしまうのですが、見つからなかったときはフラグを立てたいと思っています。
そのようなことはできますでしょうか?
wordは初心者、検索してExcelvbe内に書いてます。
・ツリー全体表示

【854】Re:ExcelからWord図形を検索する
発言  マナ  - 18/3/21(水) 13:31 -

引用なし
パスワード
   ▼かず さん:

>わたしの2010では判定できています。

こんな感じで確認しました。

Sub 動作確認()
  Dim doc As Document
  Dim sp As Shape
  
  Set doc = ActiveDocument

  For Each sp In doc.Range.ShapeRange
    If sp.Type = msoGroup Then
      グループ内調査 sp
    Else
      吹き出し取得 sp
     End If
  Next
  
End Sub

Private Sub 吹き出し取得(sp As Shape)

  Select Case sp.AutoShapeType
    Case 53 To 59, 105 To 124, 137
      MsgBox sp.TextFrame.TextRange.Text
      MsgBox sp.Anchor.Information(wdActiveEndPageNumber)
  End Select

End Sub

ところで、吹き出し以外でも、図形にコメント挿入できますが問題ないのでしょうか。
・ツリー全体表示

【853】Re:ExcelからWord図形を検索する
発言  マナ  - 18/3/21(水) 13:20 -

引用なし
パスワード
   ▼かず さん:

>Q1
>Word のバージョンが2010 になると AutoShapeType プロパティ
>が使えるオブジェクトを変えないといけないのでしょうか?

グループ化された図形で試して、使えないと判断しただけでは?
わたしの2010では判定できています。

>Q2 吹き出しがある箇所を、何ページの何行目科の位置と、
>  その図形自体へのハイパーリンクとして、上記リストでは
>  4列目と5列目に記載したいと思います

わたしにはできません。
解決したら、報告お願いします。
・ツリー全体表示

【852】ExcelからWord図形を検索する
質問  かず  - 18/3/17(土) 23:55 -

引用なし
パスワード
   Word文書の納品前チェックをしており、本来は削除されているはずの
吹き出しが残っていないか、チェックするマクロを組みたいと思って
います。

Q1
自宅Windows10 Excel2007 Word2007 の環境で
Excel VBAからWordを起動してWordの図形=Shape の
中から 吹きだしを 取り出して リストすることまでできたのですが
これを会社(Windows7 Excel2010) で実行すると 図形の
判定=> AutoShapeTypeでの判定ができず そこを書き換えが必要なようです
★印部分です

Word のバージョンが2010 になると AutoShapeType プロパティ
が使えるオブジェクトを変えないといけないのでしょうか?
Word2013や2016 でも変えないといけないとすると少々面倒ですが
そういうものでしょうか?
----リスト-----------------
Sub test()
  Dim doc As Document
  Dim x As Word.Shape
  Dim y As Shape
  
  Dim wb As Workbook
  Dim wk As Worksheet
  Dim cFiles As Variant
  Dim C As Comment
  Dim cPath As String
  Dim cFile As String
  Dim i As Long
  Dim j As Long
  Dim iR As Long

  Dim w As Variant
  Dim sh As Worksheet
  Dim cc As Range
  Dim r As Range
  Dim z As Variant
  Dim flag As Boolean
  
  Dim isp As InlineShape
  Dim msg As String

  Application.ScreenUpdating = False
  Application.DisplayAlerts = False
  Application.ShowWindowsInTaskbar = False
  Application.EnableEvents = False

  Set wk = ActiveSheet
  Cells.Delete
  iR = 1
  wk.Range("A" & iR & ":" & "D" & iR).Value = Array("種類", "パス", "文字列", "リンク")
  
  cPath = ThisWorkbook.Path & "\"
  cFiles = Split(CreateObject("WScript.Shell").Exec("CMD /C DIR /A:-D/B/S """ & cPath & "*.doc*""").StdOut().ReadAll(), vbNewLine)
  For i = 0 To UBound(cFiles) - 1
      cFile = Mid(cFiles(i), InStrRev(cFiles(i), "\") + 1)
      If Left(cFile, 2) <> "~$" Then

         With CreateObject("word.application")
           '.Visible = True
           .documents.Open Filename:=cFiles(i), ReadOnly:=True
          
           Set doc = ActiveDocument
           ' アクティブ文書の全Shapeにループを回す
           For Each x In ActiveDocument.Shapes
             ' ★ ↑会社ではActiveDocument.Range.ShapeRange 
             ' Shapeが吹き出しだったら
             If ((x.AutoShapeType >= 53 And x.AutoShapeType <= 59) Or _
               (x.AutoShapeType >= 105 And x.AutoShapeType <= 124) Or _
               x.AutoShapeType = 137) Then
               iR = iR + 1
               wk.Cells(iR, "A").Value = "吹出し"
               wk.Cells(iR, "B").Value = cFiles(i)
               wk.Cells(iR, "C").Value = x.TextFrame.TextRange.Text
               'wk.Cells(iR, "D").Value = x.Top
               wk.Hyperlinks.Add Anchor:=wk.Cells(iR, "D"), Address:=cFiles(i), SubAddress:="'" & .Name '&  "'!" & x.TopLeft.Address(False, False)
                  
               wk.Cells(iR, "D").Font.Underline = xlUnderlineStyleSingle
               wk.Cells(iR, "D").Font.ColorIndex = 5
             End If
           Next x

        
         End With

      End If
  Next i
  Columns("A:D").AutoFit
  Rows("1:" & iR).AutoFit
  
  'ThisWorkbook.Activate
  Range("B2").Select
  ActiveWindow.FreezePanes = False
  ActiveWindow.FreezePanes = True
  
  Application.EnableEvents = True
  Application.ShowWindowsInTaskbar = True
  Application.DisplayAlerts = True
  Application.ScreenUpdating = True
End Sub

Q2 吹き出しがある箇所を、何ページの何行目科の位置と、
  その図形自体へのハイパーリンクとして、上記リストでは
  4列目と5列目に記載したいと思います
  ぜひお知恵をお借りしたくよろしくお願いいたします
 一覧表にできないでしょうか
・ツリー全体表示

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