Word VBA質問箱 IV

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

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


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

【342】あるTableオブジェクトの直近の見出しを取...
質問  日比野桜子  - 05/9/16(金) 0:49 -

引用なし
パスワード
   Wordドキュメント内の表オブジェクトの内容を、Excelに出力するマクロを作成しています。
Tablesコレクションを順に処理する方法で実現させていますが、この際、カレントTableオブジェクトが属する段落の見出しを取得するにはどのようにすればよいでしょうか。

例)Table-1に注目している場合、"1.1.1 見出し3"という文字列を取得したい。

 1. 見出し1
  1.1 見出し2
  1.1.1 見出し3
   [ Table-1 ]
   [ Table-2 ]
  1.1.2 ....
   [ Table-3 ]
  1.2 ....

なにぶん超初心者なので五里霧中です。
お力添えいただければ幸いです。
なお、当方Word2000を使用しています。
・ツリー全体表示

【340】Re:ルビを振ったときの悲しい現象
発言  Jaka  - 05/9/13(火) 16:57 -

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

どういう状況なのか良く解ってませんが、
ルビの配置が「左揃え」になっているだけではないでしょうか?
中央揃え、均等割付を選んだらどうなるのでしょうか?
by97
・ツリー全体表示

【339】ルビを振ったときの悲しい現象
質問  roal  - 05/9/9(金) 20:17 -

引用なし
パスワード
   こんにちは。
Wordでルビを振ったときに現れる現象につきまして、どなたか助言をいただけないでしょうか。
ルビを振るためにダイアログボックスを開き、「ok」をクリックして確定すると、ルビは振られるのですが、同時にルビの振られた語句が2つに増えてしまいます。
つまり、ルビの振られた単語の後ろにもう一つルビの振られていない単語が続くのです。
どなたか、この現象の解決方法をご存じの方、ご教授ください。
よろしくお願いします。
・ツリー全体表示

【338】おそらく解決していると思いますが、、、。
回答  一般ユーザー  - 05/9/9(金) 2:17 -

引用なし
パスワード
   4月の書込なのでおそらく解決していると思いますが、、、。
ツールバーに「チェック/コメント」というのがあります。
それを表示して表示内容を「最終版」して印刷してみてはいかがでしょうか?
ちなみに「最終版(変更箇所/コメントの表示)」の状態ですとご質問のFormatで印刷されます。
・ツリー全体表示

【337】Re:クリップボードについて
お礼  初心者  - 05/9/7(水) 15:45 -

引用なし
パスワード
   ちくたくさん、ありがとうございました。
解決しました。
・ツリー全体表示

【336】Re:クリップボードについて
回答  ちくたく  - 05/9/7(水) 14:52 -

引用なし
パスワード
   こんにちは。
昔、懐かしい感じがしますね。このショートカット。
さて、Ctrl+Insertは、コピーです。
貼り付けは、Shift+Insertです。
最近は、Ctrl+Vがよくあるでしょうね。

▼初心者 さん:
>ワードにダイヤログボックスのコピーが貼り付けできません。
>やり方)
>1).Alt+PRINTでダイヤログのコピーをして、
>2).Ctrl+Insretでコピーしたダイヤログを貼り付ける
>以上の方法で、やってみたのですが、貼り付けできませんでした。
>どこを設定すれば、貼り付けることができるのでしょうか?
・ツリー全体表示

【335】クリップボードについて
質問  初心者  - 05/9/7(水) 13:24 -

引用なし
パスワード
   ワードにダイヤログボックスのコピーが貼り付けできません。
やり方)
1).Alt+PRINTでダイヤログのコピーをして、
2).Ctrl+Insretでコピーしたダイヤログを貼り付ける
以上の方法で、やってみたのですが、貼り付けできませんでした。
どこを設定すれば、貼り付けることができるのでしょうか?
・ツリー全体表示

【334】文字確定前のマクロ実行に関して。
質問  99  - 05/9/5(月) 20:24 -

引用なし
パスワード
   http://pc8.2ch.net/test/read.cgi/tech/1122001458/99-100#tag99

2chに投稿しましたが、お返事いただけず、
より専門的なこちらで質問させていただきます。

ご回答は、こちらで賜りますようお願い申し上げます。

レスがあったらメールほしい設定にしました。


問題を端的にいうと:
VBAである動作(例えば選択文字列の拡張等)をさせたい。
しかし、入力された文字列が確定される前の段階、
即ち文字列が変換中は、上記のVBA動作を無効にしたい。
私は、WM_IME_Startcompositionを監視して、
上記の目的を達成しようと思っているのですが、
いまだ、いたりません。
他にも方法あるのではないかと、わらにもすがる思いです。
・ツリー全体表示

【332】Re:ComboBoxの使い方について
お礼  緑の狐  - 05/9/1(木) 18:51 -

引用なし
パスワード
   Jaka さん
緑の狐ですどうもありがとう御座いました。
また宜しくお願いいたします。
・ツリー全体表示

【331】Re:ComboBoxの使い方について
発言  Jaka  - 05/9/1(木) 12:42 -

引用なし
パスワード
   マクロです。(ワードのマクロ全然解りませんが...。)
ThisDocumentに

Private Sub Document_Open()
  For i = 1 To 10
    ComboBox1.AddItem i
    ComboBox1.ListIndex = -1
  Next
  '上か下のどちらか
  CmbLst = Array("aaaa", "bbbb", "cccc", "dddd", "eeee", "ffff")
  ComboBox2.List = CmbLst
  ComboBox2.ListIndex = -1
End Sub
・ツリー全体表示

【329】ComboBoxの使い方について
質問  緑の狐  - 05/8/25(木) 17:51 -

引用なし
パスワード
   初めて参加させて頂きます。
『緑の狐』と申します。
ワード文章の中にデザインモードからComboBoxを作成しました。
さて
そのリストはどのように入力するのかわかりません。
何方か宜しくご教授ください。
宜しくお願いいたします。
・ツリー全体表示

【328】xmlについて
質問  K  - 05/8/18(木) 14:16 -

引用なし
パスワード
   突然ですがワードMLを使う利点というのはどのような点ですか?
リッチテキスト形式などとの関連があるために便利というようなことを聞いたのですが、具体的に教えていただけないでしょうか?
また、リッチテキスト形式で保存できるのですが、xml形式で保存ができないのですが、無料でできるようになるのですか?
・ツリー全体表示

【327】Re:フォントの上下位置について
お礼  akki  - 05/8/18(木) 9:45 -

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

おぉ!すごいです。これで解決しました!
同様に下がっている文字を下付き文字に変えるようにも設定できました。
ありがとうございました!(*^o^*)
・ツリー全体表示

【326】Re:フォントの上下位置について
回答  H. C. Shinopy  - 05/8/17(水) 23:37 -

引用なし
パスワード
   実際に文字の位置に「上げる」「2.5pt」を指定して、
次のマクロを実行すると、「2」と表示されます。
やはり整数しか認識しないようです。
MsgBox Selection.Font.Position

単に上がっている文字を上付き文字に変えるだけなら、
条件に「….Font.Position > 0」を指定すれば、
変換できます。

Sub myChrsFont()
 Dim myChrs As Range
 '
 Selection.HomeKey unit:=wdStory
 '
 For Each myChrs In ActiveDocument.Characters
  If myChrs.Font.Position > 0 Then
   myChrs.Font.Position = 0
   myChrs.Font.Superscript = True
  End If
 Next ' myChrs
 '
 MsgBox "処理が終了しました。"
End Sub
・ツリー全体表示

【325】Re:複数の見出しの設定
お礼  tootsie  - 05/8/17(水) 16:15 -

引用なし
パスワード
   早速のご教示ありがとうございました。
快適かつスマートに機能してくれています。

今回、ワードでマクロの「ヘルプ機能」を使えるようにしたので(いままでリムーバルディスクからダウンロードされておらず使用できませんでした)理解の助けになります。
ただ、専門用語が多く、技術的な基礎知識がないので難解です。コンピュータ・プログラムの門外漢でも簡単にマクロを組める仕組みがあれば、労働集約的作業から解放されるオフィスワーカーも少なくないのではないかしらん、と想像したりします。

まずは略儀ながらお礼申し上げます。
・ツリー全体表示

【324】Re:複数の見出しの設定
回答  H. C. Shinopy  - 05/8/16(火) 22:32 -

引用なし
パスワード
   残暑お見舞い申し上げます。

まず、マクロ処理の前提として、
文書の先頭から末尾まで検索したらそれで処理を終わること、
「◎」が行の先頭・途中・末尾のどこかにあるということにします。

マクロの記録では、「.Wrap = wdFindContinue」となり、
検索・置換の内容によっては、処理が無限ループに陥ります。
これが、tootsieさんを困惑させている原因です。

ヘルプで「Wrap」を調べると、次のような説明が表示されます。
wdFindAsk 選択範囲または指定範囲を検索し、
 文書の残りの部分も検索するかどうかをたずねるメッセージを表示します。
wdFindContinue 検索範囲の先頭または末尾まで検索し、さらに検索を続けます。
wdFindStop 検索範囲の先頭または末尾まで検索したら、検索を終了します。

「.Wrap = wdFindStop」を指定すれば、文書の末尾まで検索すると、
Do〜Loop内の「If Not .Found Then Exit Do」で
処理を終わらせることができます。

Sub myStyle1()
 ' 文書の先頭から末尾まで「◎」を検索する。
 ' 見出し1を設定する。
 Selection.HomeKey Unit:=wdStory
 Selection.Find.ClearFormatting
 '
 With Selection.Find
  .Text = "◎"
  .Forward = True
  .Wrap = wdFindStop ' wdContinueではなく…
  .MatchAllWordForms = False
  .MatchSoundsLike = False
  .MatchFuzzy = False
  .MatchWildcards = False
  Do
   .Execute
   If Not .Found Then Exit Do
   '
   Selection.HomeKey Unit:=wdLine, Extend:=wdMove
   Selection.MoveDown Unit:=wdLine, Extend:=wdExtend
   '
   Selection.Style = ActiveDocument.Styles("見出し 1")
   Selection.Collapse wdCollapseEnd
  Loop
 End With
End Sub


また、ヘルプでStyleを調べてみたら、
次のような例が出てきました。御参考までに。

Sub myStyle2()
 ' 次の使用例は、
 ' 作業中の文書の "第 " という語から始まる各段落に
 ' [見出し 1] スタイルを適用します。
 '
 For Each para In ActiveDocument.Paragraphs
  If para.Range.Words(1).Text = "第 " Then
    para.Style = ActiveDocument.Styles(wdStyleHeading1)
  End If
 Next para
End Sub
・ツリー全体表示

【323】複数の見出しの設定
質問  tootsie  - 05/8/16(火) 13:25 -

引用なし
パスワード
   ようやく猛暑も一段落している今日この頃です。
いつもお世話になります。

さっそくですが、以下のようなワードのマクロを作成するにはどのようにしたらよいでしょうか。

「◎」を検索し、その行に「見出し1」を設定する。(◎は文書中複数存在する)

以下のように、「マクロの記録」と「loop」を使って作ってみましたが、◎を検索したところで、作業が終わってしまいます。つらつら思うに、◎は見出し設定後も常に存在しつづけるので、true or faulse で判断するやり方ではだめでしょうか。

よい方法があればご指導ください。
よろしくお願いします。


以下、試しに作成したマクロ

Sub マクロ試作()

ここは蛇足です。

  'EEEEを削除する
  Dim tf As Boolean 'ブール型
  Selection.HomeKey Unit:=wdStory
  Selection.Find.ClearFormatting
  With Selection.Find
    .Text = "EEEE"
    .Replacement.Text = "^x"
    .Forward = True
    .Wrap = wdFindContinue
    .Format = False
    .MatchCase = True
    .MatchWholeWord = False
    .MatchByte = False
    .MatchAllWordForms = False
    .MatchSoundsLike = False
    .MatchWildcards = False
    .MatchFuzzy = False
  '繰り返すのはここから
   tf = .Execute '検索実行:成功したらTRUE
   Do While tf = True 'tf = True 間、Do〜Loop間を繰り返す
  Selection.MoveDown Unit:=wdLine, Count:=2, Extend:=wdExtend
  Selection.EndKey Unit:=wdLine, Extend:=wdExtend
  Selection.Delete Unit:=wdCharacter, Count:=1
  '次を実行
      tf = .Execute
     Loop
    '========================
  End With
 
  '[BoxNo]を削除する
  Selection.HomeKey Unit:=wdStory
  Selection.Find.ClearFormatting
  With Selection.Find
    .Text = "[BoxNo]"
    .Replacement.Text = "^x"
    .Forward = True
    .Wrap = wdFindContinue
    .Format = False
    .MatchCase = False
    .MatchWholeWord = False
    .MatchByte = False
    .MatchAllWordForms = False
    .MatchSoundsLike = False
    .MatchFuzzy = False
    .MatchWildcards = True
  '繰り返すのはここから
   tf = .Execute '検索実行:成功したらTRUE
   Do While tf = True 'tf = True 間、Do〜Loop間を繰り返す
  Selection.HomeKey Unit:=wdLine
  Selection.MoveDown Unit:=wdLine, Count:=5, Extend:=wdExtend
  Selection.Delete Unit:=wdCharacter, Count:=1
  '次を実行
      tf = .Execute
     Loop
    '========================
  End With

ここからが見出しの設定です。

  '見出し1を設定する
  Selection.HomeKey Unit:=wdStory
  Selection.Find.ClearFormatting
  With Selection.Find
    .Text = "◎"
    .Replacement.Text = "^x"
    .Forward = True
    .Wrap = wdFindContinue
    .Format = False
    .MatchCase = False
    .MatchWholeWord = False
    .MatchByte = False
    .MatchAllWordForms = False
    .MatchSoundsLike = False
    .MatchFuzzy = False
    .MatchWildcards = True
'繰り返すのはここから
   tf = .Execute '検索実行:成功したらTRUE
   Do While tf = True 'tf = True 間、Do〜Loop間を繰り返す
  Selection.Style = ActiveDocument.Styles("見出し 1")
    '次を実行
      tf = .Execute
     Loop
    '========================
   End With
End Sub
・ツリー全体表示

【322】Re:見出しの設定や複数行の削除の方法
発言  tootsie  - 05/8/16(火) 13:09 -

引用なし
パスワード
   いただいたマクロをそのまま使ってみましたが、うまくいかないので、もう一度「マクロの記録」と「loop」を使って、それを追加していく形で作り直してみました。
うまくいかなかった原因は、よけいな場所に「Selection.Find.Execute」が入っているためだと判明。解決しました。

問題は「見出し」の設定ですが、こちらは、別の質問として、もう一度改めてお伺いしたいと考えております。

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

【321】Re:見出しの設定や複数行の削除の方法
お礼  tootsie  - 05/8/16(火) 12:20 -

引用なし
パスワード
   早速のご指導、ありがとうございます。
こちらで試してみます。

実は、「4. EEEE・・・」で、マクロの記録とloopを使って作ってみたのですが、うまくいかない場合があります。(EEEEが削除されないものが出てくる場合が、かなりあるのです)
どうしてそうなってしまうのか分からないのですが、いただいたマクロと比較しながら試行錯誤してみます。

また、お返事いたします。まずは取り急ぎお礼まで。
・ツリー全体表示

【320】フォントの上下位置について
質問  akki  - 05/8/16(火) 11:54 -

引用なし
パスワード
   文書内で文字位置が上がっている/下がっている文字を上付き/下付きの文字に変換するマクロを作成したいのですが、マクロの記録機能で整数範囲の位置の文字は変更することができました。

次に、小数点の範囲の文字、たとえば
font.position = 2.5
などの文字を変換したいのですが、できませんでした。
マイクロソフトのページを見るとこのコマンド(?)はread/write as Longと書いてあったのですが、これはやはり整数しか認識してくれないということでしょうか?
もしそうであれば、2.5pt等上にずれている文字を通常の上付き文字に変換する方法は他にあるのでしょうか。

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

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