Word VBA質問箱 IV

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

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


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

【97】Re:フォントの自動切換えなんてあるでしょう...
回答  H. C. Shinopy  - 04/5/17(月) 22:26 -

引用なし
パスワード
   御質問の内容が・・・
フォントの既定値設定の話であれば、(1)
和英混在入力の話でしたら、(2)
どちらも、Word 2000 / 2002で有効のはずですが、
私の環境はWord 2002なので断定はできません。

(1)指定したフォントを既定とする設定方法。
[書式]メニューの[フォント]を選択し、
[フォント]タブをクリックする。
[日本語用のフォント]と[英数字用のフォント]を指定し、
[既定値として設定...]ボタンをクリックする。
=>これをすると、新規文書が総てその設定になります。

(2)決められた文字を入力すると、
半角英数モードに自動で切り替えるようにする設定方法。
(IMEの設定です)
言語バーの[ツール]ボタンをクリックし、
[プロパティ]を選択する。
[和英混在入力]タブをクリックし、
[対象文字列を自動で英数に変換する]がチェックされている(既定)のを
確認する。
[対象文字列]と[対象文字列変換後の入力モード]を入力指定。

例えば、既定では「www.」が既に指定してあるため、
日本語の入力モードであっても、キーを「www.」と打つと、
自動的に英数文字入力文字が入力できる。
但し、実行キーを押すと、再び日本語入力モードになる。
(私が試したところ、微妙に反応が異なりますが、
変換キーを押しても可能でした。)
=>この場合だと、あり得ない文字並びを対象文字列に指定して、
後で検索・置換で削除とか・・・

この話、お役に立ちますか?
・ツリー全体表示

【96】フォントの自動切換えなんてあるでしょうか?
質問  word質問太郎  - 04/5/14(金) 20:55 -

引用なし
パスワード
   WORDで、日本語を書くときのフォントは明朝、半角英数字を書くときはMSゴジックに自動的に切り替わる設定方法なんてありますでしょうか?
日本語と英数字をまぜて書くことが多いので、自動切換えがあると助かります。

よろしくお願いいたしますm(__)m

WORD2000
OS;XP
・ツリー全体表示

【95】文字変換でMSゴシックを選ぶとMS明朝?に変...
質問  Jaka  - 04/5/14(金) 16:54 -

引用なし
パスワード
   こんにちは。
こちら側は、初めてです。

Win2000 & Word97 SR-2 & IME2000 において、MSゴシックが、まともに使えなくなりました。

書式 → フォント では、
日本語用のフォント MSゴシック
英数字用のフォント (日本語用と同じフォント)

となっています。

例えば新規にワードを立ち上げて、IMEオフ状態でテンキーより数字を入力した時は、MSゴシックですが
数字を選択して、ツールバーのフォントよりMSゴシックを選ぶと、MS明朝みたいな感じに変わってしまいます。
以後の改行で、その状態が続いてしまうのにも困っています。

因みにMS明朝やMSP明朝等他よく使いそうなフォントに変えても変化出ません。
唯一特殊なフォント HG、DH などに変えると変わります。

これってどうなっているのでしょうか?
・ツリー全体表示

【94】Re:拡張メタファイルの貼り付け
お礼  きみこ  - 04/4/30(金) 15:56 -

引用なし
パスワード
   ▼H. C. Shinopy さん:
ありがとうございます。
時間をかけてゆっくり試している最中です。
うまくいったらまたご連絡します♪
ほんとうにありがとうございます。
・ツリー全体表示

【93】Re:右揃えでスペースを入れると文字入力範囲...
お礼  トトロ E-MAIL  - 04/4/26(月) 10:49 -

引用なし
パスワード
   ご指導有難うございました。
試験問題をやる時に、チェックを外してしまっていた可能性がありました。
・ツリー全体表示

【92】Re:右揃えでスペースを入れると文字入力範囲...
回答  H. C. Shinopy  - 04/4/25(日) 22:56 -

引用なし
パスワード
   私は、Word2002を使っていますが、
(お役に立てるかどうか・・・)
これまた、行末に空白を入れようとすると、
余白に送られるようになっています。
これを変更するのは、下記の通りとなります。

これから作成する文書全体について
(また、それ以降の文書も)対処する場合、
1.メニューバーの[ツール]から[オートコレクトのオプション...]を選ぶ。
2.[入力オートフォーマット]タブをクリックして選ぶ。
3.[Tab/Space/BackSpaceキーでインデントとタブの設定を変更する]をオンにする。。
4.[OK]ボタンをクリックする。

その段落だけについて、対処する場合は、
次の通りになります。
(この話は、いずれも段落ごとの設定になります。
複数の段落に設定する場合は、
設定したい段落全体を選択しておきます。)

1.末尾に空白を入れたい右揃えの行にカーソルを置く。
2.メニューバーの[書式]から[段落...]を選ぶ。
3.[体裁]タブをクリックして選ぶ。
4.[英単語の途中で改行する]をオンにする。
5.[OK]ボタンをクリックする。

これも、その段落ごとの設定になりますが、
文書の上にあるルーラーの右インデントを操作する場合、
1.末尾に空白を入れたい右揃えの行にカーソルを置く。
2.ルーラーの[右インデント]マーカーを移動したい位置まで左へドラッグする。
この場合は、何文字分左へ寄せたか判りにくいのですが、
末尾に空白を入れてみれば判ると思います。
・ツリー全体表示

【91】右揃えでスペースを入れると文字入力範囲外...
質問  トトロ E-MAIL  - 04/4/24(土) 9:51 -

引用なし
パスワード
   よろしくお願いいたします。
いつからか、行を右揃えに設定して、右端にスペースを入力すると余白部分に出て行きます。本来ならばスペースを入力した分左に寄っていくはずなのですが・・何か設定をさわっていますか・・?
Word2000 WindowsXPです。
・ツリー全体表示

【90】Re:拡張メタファイルの貼り付け
回答  H. C. Shinopy  - 04/4/17(土) 22:17 -

引用なし
パスワード
   あいや〜! 再度試行すると、うまくいきませんね。
「For Each myShape・・・〜Next MyShape」で図が選択できない上、
「myShape.ZOrder msoSendBehindText」が働かない!
クリップアートの図では問題なかったのに、
ファイルから挿入した図は別物扱いされるのかな?
手作業ではできるのにVBAではできない・・・
<<(@o@)>> {ムンク〜!]

いろいろやってみたのですが、
次のようなマクロになりました。
(こちらではemfファイがないので、手持ちのgifファイルで試行しました。)
背面処理は改めて作り変え、Macro2末尾で処理を実行するようしています。
苦肉の策でツールバー操作をVBAで処理するようにしたのですが、
これまた単純ではないようで、紆余曲折して動くようにしました。
こちらはWord2002で環境が異なるのですが、取り敢えず参考までに。

Sub Macro2()
' 記録日 2004/04/14 記録者 KIMIKO
'
 Selection.InlineShapes.AddPicture FileName:="C:\Documents and Settings\User\My Documents\My Pictures\Zzz\shimane_01.gif", _
    LinkToFile:=False, SaveWithDocument:=True
 Selection.TypeBackspace
 With Selection.InlineShapes(1)
  .Fill.Visible = msoFalse
  .Fill.Transparency = 0#
  .Line.Weight = 0.75
  .Line.Transparency = 0#
  .Line.Visible = msoFalse
  .LockAspectRatio = msoTrue
  .Height = 269.04
  .Width = 486.75
  .PictureFormat.Brightness = 0.5
  .PictureFormat.Contrast = 0.5
  .PictureFormat.ColorType = msoPictureAutomatic
  .PictureFormat.CropLeft = 0#
  .PictureFormat.CropRight = 0#
  .PictureFormat.CropTop = 0#
 End With
 With Selection
  .MoveRight Unit:=wdCharacter, Count:=1
  .TypeParagraph
  .TypeParagraph
  .InsertBreak Type:=wdPageBreak
 End With
 ' ====
 Selection.InlineShapes.AddPicture FileName:="C:\Documents and Settings\User\My Documents\My Pictures\岡井路子.gif", _
    LinkToFile:=False, SaveWithDocument:=True
 Selection.TypeBackspace
 With Selection.InlineShapes(1)
  .Fill.Visible = msoFalse
  .Fill.Transparency = 0#
  .Line.Weight = 0.75
  .Line.Transparency = 0#
  .Line.Visible = msoFalse
  .LockAspectRatio = msoTrue
  .Height = 269.04
  .Width = 486.75
  .PictureFormat.Brightness = 0.5
  .PictureFormat.Contrast = 0.5
  .PictureFormat.ColorType = msoPictureAutomatic
  .PictureFormat.CropLeft = 0#
  .PictureFormat.CropRight = 0#
  .PictureFormat.CropTop = 0#
 End With
 With Selection
  .MoveRight Unit:=wdCharacter, Count:=1
  .TypeParagraph
  .TypeParagraph
  .InsertBreak Type:=wdPageBreak
 End With
 ' ====
 Call myShapeBehindText2
End Sub

Sub myShapeBehindText2()
 ' Dim myShape As InlineShapes
 Dim myCmmdBar As CommandBar
 Dim myCtrl As CommandBarControl
 Dim i As Integer
 '
 Set myCmmdBar = ActiveDocument.CommandBars("Picture") ' [図]ツールバー
 Set myCtrl = myCmmdBar.FindControl(ID:=1404) ' [テキストの折り返し]ボタン
 '
 For i = 0 To ActiveDocument.InlineShapes.Count - 1
  ActiveDocument.InlineShapes.Item(i).Select ' 図の選択
  myCtrl.Controls(4).Execute ' [テキストの折り返し]上から4番目[背面]
  ' MsgBox myCtrl.Controls(4).DescriptionText ' 処理の説明
 Next i
 ' ↓なぜか動作しない
 ' For Each myShape In ActiveDocument.InlineShapes
  ' myShape.ZOrder msoSendBehindText ' ←↓なぜか動作しない
  ' Set myCtrl = myCmmdBar.FindControl(ID:=4000) ' [テキストの折り返し]-[背面]
  ' myCtrl.Execute ' ツールバー実行
 ' Next myShape
End Sub
・ツリー全体表示

【89】Re:拡張メタファイルの貼り付け
質問  きみこ  - 04/4/14(水) 14:46 -

引用なし
パスワード
   ▼きみこ さん:
試してみたのですが、うまくいきませんでした。
下のマクロを組んで図を一度にいくつか貼り付けました。
そうすると文書の前面に貼り付けられます。背面(文字列の後ろへ移動)にするには
どうすればいいのでしょうか?
************************
  Sub myShapeBehindText()
    Dim myShape As Shape
  '
  For Each myShape In ActiveDocument.Shapes
  myShape.ZOrder msoSendBehindText
  Next myShape
************************
このマクロをどこかに入れればいいのでしょうか?
わたしはWord2000を使っています。
どなたか御教示いただけると幸いです。
よろしくお願い致します。


' Macro2 Macro
' 記録日 2004/04/14 記録者 KIMIKO
'
  Selection.InlineShapes.AddPicture FileName:="C:\WORK\test\test1\EMF2\1.emf", _
     LinkToFile:=False, SaveWithDocument:=True
  Selection.TypeBackspace
  Selection.InlineShapes(1).Fill.Visible = msoFalse
  Selection.InlineShapes(1).Fill.Transparency = 0#
  Selection.InlineShapes(1).Line.Weight = 0.75
  Selection.InlineShapes(1).Line.Transparency = 0#
  Selection.InlineShapes(1).Line.Visible = msoFalse
  Selection.InlineShapes(1).LockAspectRatio = msoTrue
  Selection.InlineShapes(1).Height = 269.04
  Selection.InlineShapes(1).Width = 486.75
  Selection.InlineShapes(1).PictureFormat.Brightness = 0.5
  Selection.InlineShapes(1).PictureFormat.Contrast = 0.5
  Selection.InlineShapes(1).PictureFormat.ColorType = msoPictureAutomatic
  Selection.InlineShapes(1).PictureFormat.CropLeft = 0#
  Selection.InlineShapes(1).PictureFormat.CropRight = 0#
  Selection.InlineShapes(1).PictureFormat.CropTop = 0#
  Selection.MoveRight Unit:=wdCharacter, Count:=1
  Selection.TypeParagraph
  Selection.TypeParagraph
  Selection.InsertBreak Type:=wdPageBreak


  Selection.InlineShapes.AddPicture FileName:="C:\WORK\test\test1\EMF2\2.emf", _
     LinkToFile:=False, SaveWithDocument:=True
  Selection.TypeBackspace
     ・
     ・
     ・
     (EMFのファイル名を変えていくつか貼り付ける)
  
End Sub
・ツリー全体表示

【88】Re:拡張メタファイルの貼り付け
お礼  きみこ  - 04/3/25(木) 14:41 -

引用なし
パスワード
   H. C. Shinopy さん回答ありがとうございました。
さっそく掲げていただいたマクロを試してみようと思います。
Wordもなにもかもまだ苦手なので、とっても助かりました。
試した結果もすぐにご連絡いたします。

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

【87】Re:拡張メタファイルの貼り付け
回答  H. C. Shinopy  - 04/3/25(木) 0:06 -

引用なし
パスワード
   「拡張メタファイル」がどういうものか、
私は思い出せなくて・・・
確かにそういうのがあったような気がするのですが・・・
これは、Wordの旧バージョンの話ですか?
私が判る範囲内で答えさせて頂きます。

VBEの画面右上の質問ボックスで「ZOrder」を検索すると、
『ZOrderメソッド(Word)』のヘルプとして、
次の使用例が載っています。(但し、Word2002の話です。)
「・・・
次の使用例は、現在の文書に楕円を追加し、
文書内に少なくともほかの図形が 1 つでも存在する場合は、
追加した楕円を z 軸方向の最後から 2 番目の図形として配置します。

With ActiveDocument.Shapes.AddShape(Type:=msoShapeOval, Left:=100, _
  Top:=100, Width:=100, Height:=300)
  While .ZOrderPosition > 2
    .ZOrder msoSendBackward
  Wend
End With
・・・」

オートシェイプなどの図については、
「ZOrder」で移動先を指定できます。
御質問の「背面」が何を意味するのか
判然としませんが、
ここでは、既に挿入した図を総て
「文字列の後ろへ移動する」ということで、
下記のマクロを掲げることに致します。

Sub myShapeBehindText()
 Dim myShape As Shape
 '
 For Each myShape In ActiveDocument.Shapes
  myShape.ZOrder msoSendBehindText
 Next myShape
End Sub
・ツリー全体表示

【86】拡張メタファイルの貼り付け
質問  きみこ  - 04/3/23(火) 10:35 -

引用なし
パスワード
   文書に何枚も拡張メタファイル(EMF)を貼り付ける作業を仕事でするのですが、
マクロで一度に貼り付ける際に、レイアウトをすべて背面したいのですが、
できるのでしょうか?
・ツリー全体表示

【85】解決
回答  まさし  - 04/3/23(火) 9:56 -

引用なし
パスワード
   すみません、他でも同じ質問をしてみましたところ、解決しました。Normal.dotというファイルが関係していたみたいです。
・ツリー全体表示

【84】テキストボックス
質問  小原信哉  - 04/3/17(水) 16:59 -

引用なし
パスワード
   Open "c:\id.txt" For Input As #1
i = i + 1
For i = 1 To 2
  Line Input #1, idlne
  If Left$(idlne, 3) = "ID:" Then
   myid$ = Mid$(idlne, 4)
  End If
  
  If Left$(idlne, 3) = "NM:" Then
   mynm$ = Mid$(idlne, 4)
  End If
 Next
Close #1

で取得したmyid$,mynm$ を

WordBasic.BeginDialog 470, 250, "Denpen Format"
  WordBasic.Text 10, 8, 100, 12, "  YOUR ID:"
  WordBasic.TextBox 100, 6, 100, 16, "TextBox1"

のテキストボックスに表示させるにはどうしたらいいのでしょうか?
・ツリー全体表示

【83】ワードを開くと既に文が・・・
質問  まさし  - 04/3/17(水) 12:01 -

引用なし
パスワード
   ワードを開くと既に文があります。おそらく、「開いたときに自動的に文頭にこの文をつける」といった設定だとは思うのですが、解除の方法がわかりません。
毎回、文を打つ前に消していますが不便で、また保存するときの保存名もその文の名前になってしまうので、困っています。
誰か解除方法を知っている方がおられましたらお教え頂けると幸いです。
・ツリー全体表示

【82】Re:コードのバックアップ
お礼  こるぎ  - 04/2/3(火) 11:38 -

引用なし
パスワード
   本当に有り難うございました。
やっと理解できました。

「Normal.dot」そのものをコピーすればいいという、本当に単純なことだったんですね。
また、このファイル名の「Normal」が、
  [Normal]-[フォーム]-[****1]
の「Normal」のことだと言うことも、今更変わりました。
最近まで一太郎を触ってきた私は、テンプレートを元にWordファイルを作成し、それぞれの中に別々のマクロが入ると言うことを、きちんと理解していませんでした。
そういったところも含めて、今まで理解していなかったことが、すっきりしました。
・ツリー全体表示

【81】Re:コードのバックアップ
回答  ichinose  - 04/2/2(月) 17:21 -

引用なし
パスワード
   ▼こるぎ さん:
こんばんは。

>ご面倒をおかけして申し訳ありません。
>実は、私がやりたかったのは、教えていただいた様な難しいことではなく、もっとはるかに簡単なケースでした。説明が下手で申し訳ありませんでした。
>
>私が行おうとしていたのは、WORD2000にて、
>
>[Normal]-[フォーム]-[****1]
>[Normal]-[フォーム]-[****2]
>[Normal]-[標準モジュール]-[****1]
>[Normal]-[標準モジュール]-[****2] ,****3,****4,・・・  

なるほど、それでNormal.dotの保存場所が知りたかったというわけですね!!

上記のNormalの標準モジュールに
'================================
Sub test()
  MsgBox ThisDocument.FullName
End Sub

と記述して実行して下さい。パスが表示されます。
既定のパスは、
「C:\WINDOWS\Application Data\Microsoft\Templates\Normal.dot」
になっているはずですが・・・。
・ツリー全体表示

【80】Re:コードのバックアップ
お礼  こるぎ  - 04/2/2(月) 15:15 -

引用なし
パスワード
   ご面倒をおかけして申し訳ありません。
実は、私がやりたかったのは、教えていただいた様な難しいことではなく、もっとはるかに簡単なケースでした。説明が下手で申し訳ありませんでした。

私が行おうとしていたのは、WORD2000にて、

[Normal]-[フォーム]-[****1]
[Normal]-[フォーム]-[****2]
[Normal]-[標準モジュール]-[****1]
[Normal]-[標準モジュール]-[****2] ,****3,****4,・・・  

のみにコードがあり、それぞれのWordファイルにはマクロは記述されておらず、
標準モジュールから、すべてのWordファイルに対し作業を行う。
というシンプルな形になっています。

2回目のご説明で、「それぞれのWordファイルが有するマクロを個別にエクスポートする」と受け取られていたことが分かりましたので(本当に説明不足で申し訳ありませんでした)、それぞれのファイルに適当なマクロを付けて作動させるとその通りに動くことが確認できました。

教えていただいたことは、別のマクロをこれから作成するにあたり、非常に勉強になる部分がたくさんありましたので、無駄にはいたしません。有り難うございました。

私が本来やろうとしていたことは、教えていただいたことを参考に、もうちょっと自分で頑張ってみようと思います。
・ツリー全体表示

【79】Re:コードのバックアップ
発言  ichinose  - 04/1/31(土) 20:05 -

引用なし
パスワード
   ▼こるぎ さん:
こんばんは。
まず、投稿したコードは、Word2000で動作確認を行いました。

Word2002以降では、セキュリティでの設定が必要です。
「ツール」---「マクロ」----「セキュリティ」で、
”信頼のおける発行元”のVisualBasicプロジェクトへのアクセスへの信頼する
にチェックして下さい。


>実は、幾通りか試したところ、どうやっても教えていただいたコードのみが書き出されてしまいました。
詳しく教えていただければ、こちらでも検証しますが、
正常に作動すれば、コードがあるDocファイルのエクスポートは行いません・・・。

それから、以下の変更を行って再試行してみてください。

>'==================================================================
>Sub Document_Open()
>  Dim r_fld
>  Dim w_fld
'  Application.ActiveWindow.WindowState = wdWindowStateMinimize
↑これ削除してください
>  AppActivate Application.Caption
>  r_fld = get_folder_path("一括エクスポートするWordドキュメントの存在するフォルダを選択して下さい")
>  If VarType(r_fld) <> vbBoolean Then
>   w_fld = get_folder_path("エクスポート先フォルダを選択して下さい")
>   If VarType(w_fld) <> vbBoolean Then
>     ans = MsgBox("「" & r_fld & "」に存在するワードファイルのVBAコードを「" & w_fld & "」内に作成します。" & vbLf _
>       & "  ・ワードファイル名と同じ名前に「exp」が付いたフォルダが「" & w_fld & "」内に作成されます。" & vbLf _
>       & "  ・このフォルダにエクスポートファイルとログファイルが作成されます", vbOKCancel)
>     If ans = 1 Then
>      WordBasic.DisableAutoMacros 1
>      Call export_proc(r_fld, w_fld)
>      WordBasic.DisableAutoMacros 0
>      End If
>     End If
>   End If
'  Application.ActiveWindow.WindowState = wdWindowStateMaximize
 ↑これも削除
>End Sub


>'==============================================================

>Function get_folder_path(mes)
>'フォルダ選択処理
>'input   :  mes  : 表示メッセージ
>  Dim fld
  Set fld = CreateObject("Shell.Application").BrowseForFolder(0, mes, 1, 17)
'                                     ↑
'                                  2→1に変更
'                                   
>  On Error Resume Next
>  If Not fld Is Nothing Then
>    get_folder_path = fld.items.Item.Path
>    If Err.Number <> 0 Then
>     get_folder_path = False
>     End If
>  Else
>    get_folder_path = False
>    End If
>  Set fld = Nothing
>End Function

上記を変更してください
・ツリー全体表示

【78】Re:コードのバックアップ
お礼  こるぎ  - 04/1/31(土) 11:41 -

引用なし
パスワード
   有り難うございました。

実は、幾通りか試したところ、どうやっても教えていただいたコードのみが書き出されてしまいました。
私はまだVBA初心者なもので、やり方が間違っているからと思いますが、教えていただいたコードを時間をかけてゆっくり勉強し、いずれ実用化に向けて頑張ってみたいと思います。
・ツリー全体表示

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