Word VBA質問箱 IV

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

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


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

【363】Re:指定枠内での行間設定&縦書き表示
お礼  berry E-MAIL  - 05/10/25(火) 21:37 -

引用なし
パスワード
   ご回答、ありがとうございます。明日、会社でやってみます。全角ですね。
・ツリー全体表示

【362】Re:使われていないスタイルを削除する
お礼  ほびっと  - 05/10/22(土) 16:16 -

引用なし
パスワード
   自力で解決しました。
http://office.microsoft.com/ja-jp/assistance/HA010429641041.aspx
ありがとうございました。
・ツリー全体表示

【361】Re:WORDファイルからテキストファイル...
回答  まも  - 05/10/21(金) 11:12 -

引用なし
パスワード
   こんにちははじめまして。

>テキストファイルに変換出力したいのですが、どのように
>すればよいでしょうか?

別名で保存するときに、****.txtにするといかがでしょうか?
(****は任意の名前にしてください)
・ツリー全体表示

【360】Re:指定枠内での行間設定&縦書き表示
回答  まも  - 05/10/21(金) 11:08 -

引用なし
パスワード
   こんにちははじめまして。
表示する英字は半角ですか?全角ですか?
全角であれば縦ならびになりませんか?
はずしていたらごめんなさい。
・ツリー全体表示

【359】指定枠内での行間設定&縦書き表示
質問  berry E-MAIL  - 05/10/20(木) 20:25 -

引用なし
パスワード
   皆さんの知識をかしてください。

枠を作成し、その中に文字入力し、その文字を縦書き指定にする方法はわかるのですが、ただアルファベットの縦書き形式を、

I
D

と並べたいのです。上記のようなアルファベットの縦書きはできないでしょうか?
また、枠内での部分的な縦書きと横書きを分ける指定は出来ないのでしょうか?
宜しくお願いします。
・ツリー全体表示

【358】使われていないスタイルを削除する
質問  ほびっと  - 05/10/18(火) 17:26 -

引用なし
パスワード
   以前にマイクロソフト関連のサイトで、Wordのその文書で使われていないスタイルを削除するマクロが紹介されていた覚えがあるのですが、ご存知の方いらっしゃいませんでしょうか。
・ツリー全体表示

【357】Re:フォルダー内のテキストファイルを連結...
お礼  tootsie  - 05/10/17(月) 17:50 -

引用なし
パスワード
   ご教示ありがとうございました。
エクセルを立ち上げたり、My Documents の部分を書き換えたり、自分なりにいろいろ工夫してみたのですが、なにぶんVBAについて基礎学力が足りないため、リタイアとなりそうです。

「文書を閉じてください」というメッセージは出てくるのですが、ワードの画面上は何も変化がありません。砂時計が出ているので、何かしようとしているようなのですが・・・。

この件については、後日研究の上、別の形で質問させていただきます。また、よろしくお願いいたします。

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

【356】Re:フォルダー内のテキストファイルを連結...
回答  H. C. Shinopy  - 05/10/1(土) 22:30 -

引用なし
パスワード
   あわわ、調べてみたところ、「FileDialog」は、2002以降の機能でした!
その対策をしたのが下のマクロです。

Wordと共にExcelが、パソコンにインストールされていることが前提になりますが、
ファイルを選ぶ部分については、Excelの機能を借りることにしました。
しかし、フォルダの指定が一発でうまくいかず、「DefaultFilePath」を利かせるため、
(不細工ですが)Excelを裏方で二度起動しています。

それから、前回の回答にあった「myWord」は余計なオブジェクトでしたので削除。
取り敢えず、参照設定なしで動作するようにしています。

Sub myTxtInsertU2000()
 Rem *----*----*  *----*----*  *----*----*  *----*----*
 Rem 複数テキストファイルの挿入
 Rem *----*----*  *----*----*  *----*----*  *----*----*
 Rem 参照設定の場合...
 Rem  Microsoft Excel 10.0 Object Library
 Rem  Microsoft Scripting Runtime
 Rem *----*----*  *----*----*  *----*----*  *----*----*
 Dim myExcel As Variant ' Excel.Application
 Dim myDlgPick As Variant
 Dim mySelectedItem As Variant
 '
 Dim myFso As Variant ' Scripting.FileSystemObject
 Dim myFile As Variant
 Dim myNewFile As String
 '
 ' 前処理
 If Documents.Count >= 2 Then
  MsgBox "文書を閉じて下さい。"
  Exit Sub
 End If
 If Documents.Count = 1 Then
  If ActiveDocument.Characters.Count > 1 Then
   MsgBox "文書を閉じて下さい。"
   Exit Sub
  Else
   If ActiveDocument.Words(1).Text <> vbCr Then
    MsgBox "文書を閉じて下さい。"
    Exit Sub
   Else
    ActiveDocument.Close
   End If
  End If
 End If
 '
 ' フォルダの指定
 Set myExcel = CreateObject("Excel.Application")
 myExcel.DefaultFilePath = "C:\Documents and Settings\User\My Documents\Zzz"
 myExcel.Quit
 Set myExcel = Nothing
 '
 'myExcel.DefaultFilePath = "C:\Documents and Settings\User\My Documents\Esperanto"
 ' ↑フォルダ指定は、2回目実行時から有効。
 ' ↓フォルダ指定の効き目なし。
 'ChDrive "C:"
 'ChDir "C:\Documents and Settings\User\My Documents\Zzz"
 '
 ' ファイルの指定
 Set myExcel = CreateObject("Excel.Application")
 myDlgPick = myExcel.Application.GetOpenFilename(filefilter:="テキスト,*.txt,文書,*.doc", _
  Title:="ファイルを選ぶ", _
  MultiSelect:=True)
 If TypeName(myDlgPick) = "Boolean" Then
  Rem [キャンセル]ボタン時
  myExcel.Quit
  Set myExcel = Nothing
  Set myDlgPick = Nothing
  Exit Sub
 End If
 '
 ' ファイルの挿入
 Set myFso = CreateObject("Scripting.FileSystemObject")
 Application.Documents.Add
 '
 For Each mySelectedItem In myDlgPick
  With Selection
   .HomeKey Unit:=wdStory, Extend:=wdMove
   .InsertFile FileName:=mySelectedItem, Range:="", ConfirmConversions:=False, _
    Link:=False, Attachment:=False
   .InsertBreak Type:=wdPageBreak ' 改ページ
   '
   Set myFile = myFso.GetFile(mySelectedItem)
   Rem *----*----*
   Rem myNewFile = myFso.GetFileName(mySelectedItem)
   Rem myFso.DeleteFile myNewFile ' ファイル削除
   Rem *----*----*
   myNewFile = "Zzz" & myFso.GetFileName(mySelectedItem)
   myFile.Name = myNewFile ' ファイル名を「Zzz〜」に変更
   Rem *----*----*
  End With
 Next ' mySelectedItem
 '
 ' 後処理
 myExcel.Quit
 Set myDlgPick = Nothing
 Set myFso = Nothing
 Set myFile = Nothing
 Set myExcel = Nothing
End Sub ' myTxtInsertU2000
・ツリー全体表示

【355】Re:フォルダー内のテキストファイルを連結...
お礼  tootsie  - 05/9/30(金) 16:58 -

引用なし
パスワード
   Shinopyさん

ご回答ありがとうございます。お礼が遅れてすみません。

まず、参照設定についてですが、おっしゃるとおりの4つに加えてNormalにチェックが入っています。(Microsoft Word 10.0 Object Library は 9.0です)Normalのチェックが悪影響しているとも思えないので、というか、チェックを取ってしまうとせっかく作った別のマクロに影響するのではないかと不安に感じて、そのままにしています。

次に、as Variantで実験したところ、

「' ファイルの指定
 Set myDlgPick = Application.FileDialog(msoFileDialogFilePicker)」のところで「.FileDialog」がハイライトされた状態でコンパイルエラー「メソッドまたはメンバが見つかりません」と出てきます。

その他のおっしゃる方法は、自分なりにいろいろ試してみましたが、どうも効果が上がりません。

お忙しいとは存じますが、上記コンパイルエラーを解決する方向でよいお知恵をお貸しいただければ幸いです。

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

【354】セルの表の印刷時
質問   E-MAIL  - 05/9/28(水) 15:18 -

引用なし
パスワード
   はじめまして
しおりの作成をしております。
セルを用いて表を作成したのですが印刷時に上手く行きません。
症状は印刷時に塗りつぶした場所が塗りつぶされていません。
2ページ印刷で偶数ページのみ、症状が出ています。
また、偶数ページを1ページのみ印刷した場合はちゃんと塗りつぶされています。
分かりにくいかと思いますが宜しくお願いします。
・ツリー全体表示

【353】Re:あるTableオブジェクトの直近の見出しを...
お礼  日比野桜子  - 05/9/27(火) 20:46 -

引用なし
パスワード
   H. C. Shinopyさん

ご丁寧にいろいろ教えていただきありがとうございました^^
おかげさまで万事うまくいきました♪
・ツリー全体表示

【352】Re:あるTableオブジェクトの直近の見出しを...
回答  H. C. Shinopy  - 05/9/26(月) 23:42 -

引用なし
パスワード
   見出し文字のことを忘れておりました。
箇条書きの値に対応する文字列も取得する場合は、
次の通りです。

見出し3の所にカーソルがある状態で、実行してみて下さい。

MsgBox "[" & Selection.Range.ListFormat.ListString & "] " & Selection.Range.Text
・ツリー全体表示

【351】Re:あるTableオブジェクトの直近の見出しを...
質問  日比野桜子  - 05/9/26(月) 19:00 -

引用なし
パスワード
   H. C. Shinopyさん

翌日に早速ご回答戴いたのにお礼が遅れて失礼しました。
提示いただいたコード中、直前の行が「見出し3」であるか
どうかチェックする部分は、該当しない場合はループさせて
1行ずつ巡っていく感じになるんですかね。
現在抱えてる案件は確かに「見出し3」以下にしか表を配置
しないドキュメントですので、これでなんとか解決しそうです。
ありがとうございました。

ついでなのでもう1つ教えていただきたいのですが、
Select.Range.Text では見出し文字(「1.1.3. 見出しタイトル」の「1.1.3.」)
が取得できないようなのですが、これも含めて取得する方法はありますか?
・ツリー全体表示

【350】WORDで各文章のズレについて
質問  YOSHI  - 05/9/23(金) 13:03 -

引用なし
パスワード
   今、ワードで書類を作っているのですが最初左端にフォントサイズ15で見出しを作り、同じ行にサイズ10.5で内容を打ち込んでいるのですが、各見出しは左端で揃っているのですが、各内容の文章の始まりがズレてしまいます。
基礎的な質問だと思いますが、何回試しても出来ません。
よろしかったらアドバイスお願いします。
・ツリー全体表示

【349】Re:フォルダー内のテキストファイルを連結...
回答  H. C. Shinopy  - 05/9/21(水) 23:29 -

引用なし
パスワード
   エラーが出ましたか? 
実のところ、なぜかは判らないのですが、、
できることを回答しておきます。

「ユーザ定義型は定義されていません」表示の件:
申し遅れましたが、私の環境はWord 2002です。
(当方では、エラーが再現されませんでした。)
2000と2002でVBAの仕様に大幅な変更はないハズなのですが・・・
取り敢えず、Dim文を変更して、「Dim myDlgPick As Variant」で逃げる。
それでもエラーが発生する場合は、参照設定を確認して下さい。

私の環境下の参照設定は、次の4つにチェックボックスがオンになっています。
(「標準状態」です。Word 2000の場合は「10.0」が「9.0」になっていると思います。)
Visual Basic For Applications
Microsoft Word 10.0 Object Library
OLE Automation
Microsoft Office 10.0 Object Library

Variant指定が気になる場合は、
「Set myDlgPick = Application.FileDialog(msoFileDialogFilePicker)」の次に
「MsgBox TypeName(myDlgPick)」を追加して、実行テストをして頂き、
表示された文字列を「Dim myDlgPick As 」の後に付ける。


それから、「テキストファイルの収納された場所に関する記述」の件
ダイアログボックスが表示されれば、
挿入したいファイルを選ぶことができるわけですが、
「With myDlgPick 〜 End With」中の「.InitialFileName = 」に
「"C:\Documents and Settings\monkey\デスクトップ"」を指定して下さい。
(私の作ったマクロでは、実行テストの都合で
「"C:\Documents and Settings\User\My Documents\Zzz"」を指定しています。)

その上で、Wordを起動した直後の状態で処理を実行してみて下さい。
(元々、他のファイルを開いていると、前処理で処理を止めるようにしていますが・・・)
・ツリー全体表示

【348】Re:フォルダー内のテキストファイルを連結...
お礼  tootsie  - 05/9/21(水) 17:21 -

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

ご回答をありがとうございました。

さっそく使ってみましたが、最初のところで「コンパイルエラー」が出てしまい、操作は暗礁に乗り上げてしまいました。

冒頭の「Dim myDlgPick As FileDialog」のところで「ユーザ定義型は定義されていません」と出てしまいます。私の使用しているワード2000のVBAはVersionが6.0なので、そのせいでしょうか。ヘルプを見ると「最初に Type...End Type ステートメントで定義するか、適切に登録されたオブジェクト ライブラリまたはタイプ ライブラリで定義する必要があります」とあります。

どのように定義すればよいのやら・・・・・。途方に暮れています。

また、いただいたマクロの中には、テキストファイルの収納された場所に関する記述がまったく見当たらないのですが、それでも、その場所を探し出して、そのファイルデータをもってくる(挿入する)ということが可能なのでしょうか・・・・・。

お忙しいことと思いますが、お返事いただければ幸いです。
・ツリー全体表示

【347】WORDファイルからテキストファイルへの...
質問  ちーかま  - 05/9/21(水) 13:46 -

引用なし
パスワード
   WORDを使用して作成したドキュメントファイルを
テキストファイルに変換出力したいのですが、どのように
すればよいでしょうか?
その際、テキストファイルへの変換結果について体裁は問いません
ドキュメントファイル内の「文字列」が全てテキストファイルに出力
されればOKです。
どなたか御存知の方がいらっしゃいましたら、回答を御願いします。
・ツリー全体表示

【346】Re:あるTableオブジェクトの直近の見出しを...
回答  H. C. Shinopy  - 05/9/17(土) 23:08 -

引用なし
パスワード
   取り敢えず、回答させて頂きます。

誠に臭い手段ですが、
カーソルの移動によって[見出し3]の文字列を取得したら、
どうでしょうか?
表の中を処理した後で、カーソル移動で[見出し3]を取り込むのです。

Sub myTableAndHeading3()
 Dim myTable As Table
 '
 Rem 表ごとの処理
 For Each myTable In ActiveDocument.Tables
  Rem ここで、表の中の処理をしておく。
  '
  Rem 見出しの処理
  myTable.Select ' 表を選択状態にする。
  Selection.MoveUp Unit:=wdLine, Count:=1 ' カーソルを1行上に移動する。
  Selection.EndKey Unit:=wdLine, Extend:=wdExtend ' 移動先の行を選択する。
  '
  If Selection.Range.Style = "見出し 3" Then
   Rem 見出し3の処理
   MsgBox "見出し 3:" & Selection.Range.Text ' 見出し3の文字列を表示する。
  Else
   MsgBox "Untitled!"
  End If
 Next ' myTable
 '
 Rem 後処理
 Selection.HomeKey Unit:=wdStory ' カーソルを文書の先頭に移動する。
End Sub ' myTableAndHeading3
・ツリー全体表示

【344】Re:フォルダー内のテキストファイルを連結...
回答  H. C. Shinopy  - 05/9/16(金) 23:58 -

引用なし
パスワード
   このごろは、朝夕の気温が下がってきました。さて、

「テキストデータの連結」ということですが、
Word文書上でファイルの挿入の操作をマクロですると解釈して、話を進めます。

ダイアログボックスでファイルを選び、
Word文書上に挿入するマクロが既にありますので、
これにファイル操作の処理を継ぎ足して、
載せておきます。

いきなりファイルの削除をお考えのようですが、
ファイル名の変更で処理するようにしています。

問題がないのであれば、Remを付け替えれば、
ファイル削除に変更できるようにしましたが、
このマクロを実行する前に、ファイルのバックアップをして下さい。

Sub myTxtInsert()
 Rem テキストファイルの挿入
 Dim myDlgPick As FileDialog
 Dim mySelectedItem As Variant
 Dim myWord As Word.Application
 '
 Dim myFso As Variant
 Dim myFile As Variant
 Dim myNewFile As String
 '
 ' 前処理
 If Documents.Count >= 2 Then
  MsgBox "文書を閉じて下さい。"
  Exit Sub
 End If
 If Documents.Count = 1 Then
  If ActiveDocument.Characters.Count > 1 Then
   MsgBox "文書を閉じて下さい。"
   Exit Sub
  Else
   If ActiveDocument.Words(1).Text <> vbCr Then
    MsgBox "文書を閉じて下さい。"
    Exit Sub
   Else
    ActiveDocument.Close
   End If
  End If
 End If
 '
 ' ファイルの指定
 Set myDlgPick = Application.FileDialog(msoFileDialogFilePicker)
 With myDlgPick
  .AllowMultiSelect = True
  .InitialFileName = "C:\Documents and Settings\User\My Documents\Zzz"
  .Filters.Add "テキストファイル", "*.txt", 1
  If .Show = 0 Then
   Rem [キャンセル]
   Set myDlgPick = Nothing
   Set myWord = Nothing
   Application.Documents.Add
   Exit Sub
  End If
 End With
 '
 ' ファイルの挿入
 Set myFso = CreateObject("Scripting.FileSystemObject")
 Set myWord = GetObject(, "Word.Application")
 Application.Documents.Add
 '
 For Each mySelectedItem In myDlgPick.SelectedItems
  With Selection
   .HomeKey unit:=wdStory, Extend:=wdMove
   .InsertFile FileName:=mySelectedItem, Range:="", ConfirmConversions:=False, _
    Link:=False, Attachment:=False
   .InsertBreak Type:=wdPageBreak ' 改ページ
   '
   Set myFile = myFso.GetFile(mySelectedItem)
   Rem *----*----*
   Rem myNewFile = myFso.GetFileName(mySelectedItem)
   Rem myFso.DeleteFile myNewFile ' ファイル削除
   Rem *----*----*
   myNewFile = "Zzz" & myFso.GetFileName(mySelectedItem)
   myFile.Name = myNewFile ' ファイル名を「Zzz〜」に変更
   Rem *----*----*
  End With
 Next mySelectedItem
 '
 ' 後処理
 Set myDlgPick = Nothing
 Set myWord = Nothing
 Set myFso = Nothing
 Set myFile = Nothing
End Sub ' myTxtInsert
・ツリー全体表示

【343】フォルダー内のテキストファイルを連結する
質問  tootsie  - 05/9/16(金) 18:11 -

引用なし
パスワード
   関東地方はようやく秋の気配で熱帯夜から解放されそうです。

さて、単刀直入ですが、

フォルダーの中にある複数のテキストデータを連結してワードの画面に表示するというワードマクロを作ることは可能でしょうか。

たとえば、
パソコンのCドライブにある「C:\Documents and Settings\monkey\デスクトップ」内の「作業ファイル」という名前のフォルダーにある複数のテキストファイル(テキストファイル名は位の定まらないランダムな数字で、012.txt、053987.txtなど)をすべて連結して、ワードの画面に表示させる。その後で作業ファイル内のテキストデータを消去する。
というやり方です。
ちなみに、パソコンはDELLでCドライブはPC本体です。

よろしくご教示ください。
・ツリー全体表示

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