Word VBA質問箱 IV

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

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


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

【28】Re:リストボックス内を並べ替え
発言  らいでん  - 03/5/4(日) 1:42 -

引用なし
パスワード
   レスつかないですね。

>リストボックスの項目を追加セットする際に

追加セット?・・ってどういったことでしょうね?
単にAddItemするという事とは違うのですか?

>Excelだとシートの並べ替えで済むのですが

シートの並び替えですか?シートの順を並び替えてどうするのでしょう?
多分Wordで表内データの並び替えを行って、そのデータをリストボックス
に取り込みたい、という事だと想像しましたが?

あまり感覚的な言葉を使わない方が宜しいかと。
・ツリー全体表示

【26】ユーザーフォームに最大化最小化ボタン
質問  WhiteRabbit  - 03/4/28(月) 17:25 -

引用なし
パスワード
   こんにちは。
ユーザーフォームに最大化最小化ボタンを付けることは可能なのか教えてください。
・ツリー全体表示

【25】Re:shellの終了と同期させるには?
回答  H. C. Shinopy  - 03/4/27(日) 23:32 -

引用なし
パスワード
   どういう状況下(環境・処理全体…)での処理なのか判りませんが、
御質問の判らん部分は独断と偏見で解釈し、返信させて頂きます。
万一、的ハズレな回答でしたら、ガセネタの1つとして、
読み飛ばして頂くことで、お許し下さい。

さて、Shell関数について、VBE上からヘルプを見ると:
xxxの値については「指定したプログラムが問題なく実行できると、プログラムのタスク ID が返されます。タスク ID は、実行中のプログラムを識別する重複しない番号です。指定されたプログラムが実行できないと、エラーが発生します。」
また「タスク ID は、実行中のプログラムを識別する重複しない番号です。実行可能プログラムを実行し、実行が完了するとプログラムのタスク ID を示すバリアント型 (内部処理形式 Double の Variant) の値を返します。プログラムの実行に問題が発生した場合は、0 を返します。」とあります。

Sendkeys関数のヘルプに使用例があり、「電卓をアクティブにします。」処理で(タイトル バーのタイトルを指定する代わりに)タスクIDを指定しています。
Sub CalcX()
 Dim ReturnValue, I
 ReturnValue = Shell("CALC.EXE", 1)  ' 電卓を実行します。
 AppActivate ReturnValue        ' 電卓をアクティブにします。
 For I = 1 To 20            ' ループ カウンタを設定します。
  SendKeys I & "{+}", True      ' 電卓にキー コードを転送して、
 Next I                ' I の値に 1 を加算します。
 SendKeys "=", True          ' 和を求めます。
 SendKeys "%{F4}", True        ' Alt + F4 キーを転送して電卓を終了します。
End Sub

同期については「・・・ メモ 既定の設定では、Shell 関数はプログラムを非同期的に実行します。したがって、Shell関数を使用して実行を開始したプログラムが終了しなくても、Shell関数の次のステートメントは実行されます。」とあります。
しかし、ヘルプを見た限りでは、「既定の設定」を変更できる余地はないようです。(VBA上のShell関数に同期・非同期を指定するパラメーター部分がないのです。)

また、市販されている書籍を探すと、著作権の都合で内容は載せませんが…
大村あつし 著「Excel VBAによるWin32 APIプログラミング入門」
エーアイ出版 刊(www.ai-pub.co.jp) 税別2680円
この本の「第4章 プログラムの実行」に
「Shell関数で起動したアプリケーションが終了するまで待機する」節(92頁)に
APIを利用した何やら物々しいVBAコードが載っています。


ここでは、あっさり処理全体をVBAではなくVBScriptを使用して、
WSHの機能で全体の処理を実行したらどうでしょうか?
(WSHは、WindowsMe・WindowsXPに対応。)

VBScriptのShell関数と同等のステートメントでは「終了待ちをする・しない」の指定ができます。
下記のスクリプトを「ファイル名.vbs」(テキスト形式で拡張子に「vbs」を指定して)保存し、これをダブルクリックして起動すれば、御質問に沿えそうな処理ができます。
(但し、Shell関数の戻り値は常に「0」です。呼び出したコマンドの終了待ちをして、終了後の戻り値を得るので、「0」になるということのようです。)
ここでは、「ABC.bat」処理内で「ABCo.txt」ファイルを出力作成し、
最後にWordに読み込むと仮定して、スクリプトは下記の通りになります。


Rem テキスト形式ファイル出力Word読み込み処理VBScript
Option Explicit
Dim WshShell, tmpInt
Dim myWord
'
Set WshShell = WScript.CreateObject("WScript.Shell")
tmpInt = WshShell.Run ("ABC.bat", 1, True)  ' True は処理待ち。
MsgBox “WScript.Shellの戻り値:” & tmpInt ' 多分、無意味な表示。
'
Set myWord = WScript.CreateObject("Word.Application")
myWord.Visible = True
myWord.Documents.Open " C:\Documents and Settings\User名\My Documents\ABCo.txt"
'
tmpInt = MsgBox("処理が終了しました。", vbOKonly+vbInformation)
WScript.Quit


この後は全く余談になりますが、
もし「ABC.bat」の処理をこのスクリプトの中に書き込んでしまえば、
(当然ながら)同期を考える必要はなくなります。
「ABC.bat」で何を処理しているのか判りませんが、
御参考までにということで…
下記のスクリプトは、「ABC.txt」ファイルを「ABCo.txt」で出力し、
それをWordで読み込むという処理です。
下記のスクリプトを「ファイル名.vbs」で保存し、
これに「ABC.txt」ファイルをドラッグ&ドロップすると、処理を実行します。


Rem テキスト形式ファイル出力Word読み込み処理VBScript
Option Explicit
Dim objDrop, objFS, objTsIn, objTsOt
Dim tmpInt, tmpTsOt, Txt
Dim myWord
'
If WScript.Arguments.Count <= 0 Then
 tmpInt = MsgBox("テキスト形式ファイルのアイコンを、" & vbCrLf _
 & WScript.ScriptName & "のアイコン上に、" & _
 "ドラッグ&ドロップして下さい。" & vbCrLf _
 & "ファイル名に「o」を付けたファイルを作成します。", _
 vbOKonly+vbInformation)
 WScript.Quit
End If
'
objDrop = Wscript.Arguments(0)
tmpInt = MsgBox("入力元ファイル:" & vbCrLf & objDrop, vbOKCancel+vbInformation)
If tmpInt = 2 Then
 WScript.Quit
End If
'
Set objFS = WScript.CreateObject("Scripting.FileSystemObject")
Set objTsIn = objFS.OpenTextFile(objDrop, 1)
'
tmpTsOt = objFS.GetParentFolderName(objDrop) _
 & "\" & objFS.GetBaseName(objDrop) & "o." & objFS.GetExtensionName(objDrop)
tmpInt = MsgBox("出力先ファイル:" & vbCrLf & tmpTsOt, vbOKCancel+vbInformation)
If tmpInt = 2 Then
 objTsIn.Close
 WScript.Quit
End If
Set objTsOt = objFS.CreateTextFile(tmpTsOt, True, False)
'
Do While Not objTsIn.AtEndOfStream
 Txt = objTsIn.ReadLine
 objTsOt.WriteLine (Txt)
Loop
'
objTsIn.Close
objTsOt.Close
' Microsoft Wordの起動
Set myWord = WScript.CreateObject("Word.Application")
myWord.Visible = True
myWord.Documents.Open tmpTsOt
'
tmpInt = MsgBox("処理が終了しました。", vbOKonly+vbInformation)
WScript.Quit
・ツリー全体表示

【23】shellの終了と同期させるには?
質問  てけてけ  - 03/4/25(金) 21:00 -

引用なし
パスワード
   こちらには初めて書込ます。
ワードマクロの中で

テキストファイルに書き出す
xxx=shell(abc.bat)
abc.batで出力されたファイルを読み込む

のように外部のバッチを実行し、このバッチでできたファイルを読み込む場合、
shellの完了を待つ必要がありますが、xxxの値をどう利用したら可能かわかりません。
コーディング例を教えて頂けるとありがたいです。
宜しくお願い致します。
・ツリー全体表示

【22】Re:WORDマクロの解説本について教えてくださ...
回答  H.C.Shinopy  - 03/4/24(木) 22:26 -

引用なし
パスワード
   長い間、放っておかれているようですが、
失業で俄かVBA作譜者になった私で宜しければ・・・

これまで、私が知り得た情報を書き込み致します。
無論ながらWord VBAに関心をお持ちでしょうから、
下記の本は既にお持ちであることは、
重々承知の上で敢えて返信させて頂きます。
(本の内容を既に御存知の場合は、御容赦ください。)


もし、この掲示板を御覧の方で、
他の「文献情報」をお持ちの方は、
追加の書き込みをお願い致します。
==== ==== ==== ====
楽天ブックスその他での検索によれば、
WordVBAの本については、次の2冊があります。

1.菅野佐知子「Word97VBAハンドブック」ナツメ社

2.大野悟・アトラス出版企画「10日で覚えるWordVBA入門教室」翔泳社

この内、1は題名からして内容は古そうですし、
(大型書籍店でも置いていません。)
取り寄せしてまで、買う価値があるかどうか・・・

従って、2だけです!(それでも、1999年8月発行の古い本です。)
お勧めとは言っても、ほかに選択の余地がありません。
(私の場合、秋葉原のLaox Book館で発見し入手しました。税別3200円)
本の内容に誤りがあるので、お買い上げの場合は、
翔泳社のサイトで訂正記事を確認して下さい。
http://www.shoeisha.com/book/errata/er_detail.asp?bid=943


少しばかりWordVBAの記事が載っている本としては、
次のものがあります。
(果たして、役に立つような記事があるかどうか・・・
本屋で立ち読みしてから、要否を判断して下さい。)

西上原裕明「Word2002 300の技」技術評論社 税別1980円
(この本は、300項目の中からVBAの記事を探さないといけません。)

岩田安雄「繰り返しよサヨウナラ 入門VBAマクロ」カットシステム
 税別2200円
(Microsoft Office全般の本です。)

Windowsプログラミング愛好会「VBAがわかる500の技」技術評論社
 税別1980円(これもMicrosoft Office全般の本です。)
(「オフィスワーク自動化計画 Wordを操作」「VBA厳選テクニック100 Word」)


断片的にWordVBAの記事が載っている本はとしては、
次のものがあります。

CRN「Word2002 トラブル解決の裏技」秀和システム
 税別2000円(「第10章 マクロの活用」)

工藤喜美枝/木村幸子
「すぐ効くWordのトラブルシューティング Q&A 276」
 毎日コミュニケーションズ 税別1600円
(「第12章 VBA」)

掌田津耶乃「Windows Script Hostハンドブック」毎日コミュニケーションズ
 税別2400円
(「Section 24 スクリプトで『ワード』を操作する」
「Section 25『ワード』をカラフルにしてみよう」)


Excel VBAの本の中で、連携処理として
Wordが関わる記事が載っている本としては、
次のものがあります。(各々、僅か1〜2件の記事ですが)

田中亨・木下裕人「Excel2000 VBAの魔術師」オーム社
 税別1900円
(ExcelのデータをWordで段組にして取り込む処理)

渡辺ひかる「Excel VBA 実用サンプルコレクション」
 ソフトバンク・パブリッシング 税別3000円
(「Section Q Q-2 Office連携 ExcelからWordを起動し、
 シートデータで差込印刷を行う」)

大村あつし「かんたんプログラミング Excel2002 VBA[応用編]」技術評論社
 税別2580円(「第9章 他のソフトとの連携」)

VBテックラボ&瀬戸遥「10日でおぼえるExcel VBA 応用教室 2000対応」
(「Lesson20 ExcelのデータをWordで印刷する」)税別3200円

瀬戸遥「Excel VBA即効サンプル集」翔泳社
 税別1800円
(「#119 ExcelからWordを起動する」
「#120 ワークシートをOLEでwordにコピー」)

[以上]
・ツリー全体表示

【21】リストボックス内を並べ替え
質問  WhiteRabbit  - 03/4/24(木) 15:17 -

引用なし
パスワード
   こんにちは。
リストボックスの項目を追加セットする際に五十音もしくはJISコード順に並べ替えする方法を教えてください。Excelだとシートの並べ替えで済むのですが、Wordではどうしてよいかわかりません。
よろしくお願いします。
・ツリー全体表示

【20】ありがとうございます!
お礼  ikasumi  - 03/4/24(木) 1:29 -

引用なし
パスワード
   丁寧に教えてくださってありがとうございます!
仰るとおり、全て教えてもらったのでは自分のためにもなりませんよね。
ここまで教えてもらっておきながらまだ試行錯誤を繰り返していて
恥ずかしい限りですが(汗
頑張って組み立てます!

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

【19】Re:フォルダの中の複数ワープロファイルを1...
発言  らいでん  - 03/4/22(火) 23:19 -

引用なし
パスワード
   らいでんです。
訂正と追記です。

>    If myFile.Type Like "Microsoft Word 文書" _
>      And Not myFile Like "~$*" Then

としている所は
    If myFile.Type Like "Microsoft Word 文書" _
      And Not myFile.Name Like "~$*" Then
に訂正します。

それから実際にコードを走らせてみると

>      Set OldDoc = Documents.Open(myFile.Path)

では、かなりバタバタして忙しい感がありますので
      Set OldDoc = Documents.Open( _
          FileName:=myFile.Path, Visible:=False)
とした方が良いかもしれません。

最後にこういったフォルダ内のファイルを総当りして1ファイル
に統合する処理では、ファイルを取り出す順番が重要になりますね。
今回はFileSearch オブジェクトを使用する方法を紹介します。
コードを全て提示してしまうと、面白くないと思いますので
ファイルをソートして取り出す部分だけのサンプルです。
後はご自分で頑張って組み立ててみてください。

Sub Test2()
  Dim i As Long
  
  Application.ScreenUpdating = False
  
  With Application.FileSearch
    .NewSearch
    '検索対象フォルダの指定
    .LookIn = "C:\My Documents"
    'サブフォルダを検索対象外
    .SearchSubFolders = False
    .MatchAllWordForms = True
    .FileType = msoFileTypeWordDocuments
    'ファイル名でソートして検索実行
    If .Execute(SortBy:=msoSortByFileName, _
      SortOrder:=msoSortOrderAscending) > 0 Then
      For i = 1 To .FoundFiles.Count
        Debug.Print .FoundFiles(i)
        If InStr(1, .FoundFiles(i), "~$") = 0 Then
          Debug.Print FileLen(.FoundFiles(i))
          '以下ファイルオープン処理等
          '
        End If
      Next
    End If
  End With
  
  Application.ScreenUpdating = True
End Sub
・ツリー全体表示

【18】Re:フォルダの中の複数ワープロファイルを1...
回答  らいでん  - 03/4/21(月) 2:15 -

引用なし
パスワード
   はじめまして。らいでんです。
私もこちらへは初めての書き込みになります。

以下はサンプルです。VBEの[ツール]→[参照設定]で
「Microsoft Scripting Runtime」にチェックを入れてください。

処理の内容は大雑把に言えば、文書を順に開いてコピー&新規文書に
ペーストしています。

留意すべき点としては、無限にコピー&ペーストが行えるわけではなく
Wordファイルサイズの制限に引っかかるので
'ファイルサイズの制限
としている下の行の数値をお使いのWordのバージョンにあわせて
適当に調節してください。(2000以降は32MB。バージョンを明記の事)
もっとも、このサイズ制限の処理はいい加減です。^-^;

Sub Test()
  Dim Fso As New FileSystemObject
  Dim myFolder As Folder
  Dim myFile As File
  Dim NewDoc As Document
  Dim OldDoc As Document
  Dim myRng As Range
  Dim myFlag As Boolean
  Dim Fsize As Long
  
  Const myPath = "C:\My Documents" 'フォルダ指定
  myFlag = False

  Set NewDoc = Documents.Add
  Set myFolder = Fso.GetFolder(myPath)
  
  For Each myFile In myFolder.Files
    If myFile.Type Like "Microsoft Word 文書" _
      And Not myFile Like "~$*" Then
      Fsize = Fsize + myFile.Size
      Debug.Print myFile.Size
      'ファイルサイズの制限
      If Fsize > 30000000 Then Exit For
      Debug.Print myFile.Name
      Set OldDoc = Documents.Open(myFile.Path)
      DoEvents
      With OldDoc
        .Content.Copy
        .Close False
      End With
      Set OldDoc = Nothing
      Set myRng = NewDoc.Content
      myRng.Collapse Direction:=wdCollapseEnd
      If myFlag = True Then
        myRng.InsertBreak Type:=wdPageBreak
      End If
      DoEvents
      myRng.Paste
      myFlag = True
    End If
    DoEvents
  Next
  
  Set myFile = Nothing
  Set myFolder = Nothing
  Set Fso = Nothing
  Set myRng = Nothing
  Set NewDoc = Nothing
End Sub
・ツリー全体表示

【17】フォルダの中の複数ワープロファイルを1つ...
質問  ikasumi  - 03/4/17(木) 17:45 -

引用なし
パスワード
   初めまして。VBA始めたばかりの超初心者です。
フォルダの中に入っている複数のワードファイルを改ページしながら
1つのファイルにしたいのですが。
どうすればよろしいのでしょうか?
・ツリー全体表示

【16】Re:段落番号の書式が設定されているかどうか...
回答  H.C.Shinopy  - 03/3/8(土) 11:22 -

引用なし
パスワード
   段落番号? 段落書式? 
ツールバーでいう[書式]の[箇条書きと段落番号]の設定のことでしょうか?

VBEの右上の[質問を入力してください]欄に、
「ListString」「ListValue」「ListParagraphs」
「ParagraphFormat」「Lists」「ListFormat」
「ListGalleries」と各々入力してみて下さい。
段落番号または行頭文字の付いた箇条書き段落に関するヘルプが表示されます。

以下に、御質問に沿えそうな使用例をヘルプから抜き書きしましたので、
参考にしてみて下さい。

Sub 段落数値文字列()
 Rem 選択範囲の最初の段落の数値と
 Rem その値を表す文字列の両方を表示します。
 v = Selection.Range.ListFormat.ListValue
 lstring = Selection.Range.ListFormat.ListString
 MsgBox "数値 " & v & " は、文字列 [" & lstring & "] で表されます"
End Sub

Sub 各文字スタイル()
 Rem 選択範囲内の各文字のスタイルを表示します。
 Dim c As Variant
 For Each c In Selection.Characters
  MsgBox "Style: " & c.Style
  MsgBox "ParagraphFormat.Style: " & c.ParagraphFormat.Style
 Next c
End Sub

Sub 箇条書き強調()
 Rem 作業中の文書で箇条書き書式が設定された段落のコレクションに、
 Rem 強調表示を設定します。
 For Each para In ActiveDocument.ListParagraphs
  para.Range.HighlightColorIndex = wdTurquoise
 Next para
End Sub

Sub 箇条書き背景着色()
 Rem 1 番目の文書で、段落番号または行頭文字を
 Rem 使った箇条書きが設定されている各段落の背景を黄色にします。
 For Each numpar In Documents(1).ListParagraphs
  numpar.Shading.BackgroundPatternColorIndex = wdYellow
 Next numpar
End Sub

Sub 箇条書き二重線()
 Rem 次の使用例は、作業中の文書で
 Rem 2 番目の箇条書きの段落すべてに、二重下線を引きます。
 For Each mypara In ActiveDocument.Lists(2).ListParagraphs
  mypara.Range.Underline = wdUnderlineDouble
 Next mypara
End Sub
・ツリー全体表示

【15】段落番号の書式が設定されているかどうかの...
質問  chihiro  - 03/2/10(月) 16:54 -

引用なし
パスワード
   教えていただきたいのですが

段落書式が設定されているかいないかを
VBAで判断するにはどうすればいいのでしょうか?

誰か お願いします
・ツリー全体表示

【14】Re:半角全角変換をするには?
お礼  ハンサムなオレ  - 03/1/28(火) 9:19 -

引用なし
パスワード
   ▼H.C.Shinopy さん:
ご丁寧にありがとうございました(*゚ー゚*)
早速自作ツールに組み込ませて頂きます。
・ツリー全体表示

【13】Re:半角全角変換をするには?
回答  H.C.Shinopy  - 03/1/28(火) 2:14 -

引用なし
パスワード
   これも「Word2002 300の技」に検索のヒントだけが載っていたのですが、
私流に考えて、以下のようなマクロになりました。
全角カタカナの後に続く「・」「ー」(中点・長音符)を半角に変換する処理と、
Officeアシスタントによる「OK・キャンセル」ボタン処理を付け足しました。
(但し、このボタン処理は「KatakanaHalfWidth」を実行した場合。
御不要な場合は「KatakanaHalfWidthExec」のみ実行して下さい。)
尚、「‐」「ヽ」「ヾ」(ハイフン・カタカナ繰り返し記号)は、
該当する半角文字がないため変換しません。

Sub KatakanaHalfWidth()
' 全角カタカナを半角に変換一括変換
' 記録日 2003/01/27 記録者 Shinopy
 Dim bBeforeRunVisible As Boolean
 Dim iLabelValue As Integer
'
 bBeforeRunVisible = Assistant.Visible
'
 With Assistant
  .Visible = True
 End With
'
 With Assistant.NewBalloon
  .Animation = msoAnimationWritingNotingSomething
  .BalloonType = msoBalloonTypeButtons
  .Icon = msoIconAlertQuery
  .Button = msoButtonSetOkCancel
  .Heading = vbCr + "全角カタカナを半角に" + vbCr + "一括変換"
  .Text = "ボタンを選択して下さい。"
  iLabelValue = .Show
 End With
'
 Select Case iLabelValue
  Case -1 ' [OK]ボタン時
   Call KatakanaHalfWidthExec
  Case -2 ' [キャンセル]ボタン時
   With Assistant
    .Animation = msoAnimationIdle
   End With
 End Select
'
 With Assistant.NewBalloon
  If iLabelValue = -2 Then
   .Text = "処理が取り消されました。"
   .Animation = msoAnimationGetAttentionMajor
   .Icon = msoIconAlert
  Else
   .Text = "処理が終了しました。"
   .Animation = msoAnimationCharacterSuccessMajor
   .Icon = msoIconAlertInfo
  End If
  .BalloonType = msoBalloonTypeButtons
  .Button = msoButtonSetOK
  .Heading = vbCr + "全角カタカナを半角に" + vbCr + "一括変換"
  .Show
 End With
 Assistant.NewBalloon.Close
 Assistant.Visible = bBeforeRunVisible
End Sub ' KatakanaHalfWidth  *----*----*
Sub KatakanaHalfWidthExec()
' 記録日 2003/01/27 記録者 Shinopy
' 「‐」「ヽ」「ヾ」(連字符・繰り返し記号)は、変換しません。
 Dim cKatakana As String
 cKatakana = "[ァ-" & ChrW(Val("&h30FA")) & "]" ' &h30FA : 「ヲ゛」
' *----*
' 全角カタカナの後に続く中点・長音符を半角に変換
 Selection.Words(1).Select
 Selection.Collapse wdCollapseStart
'
 With Selection.Find
  .ClearFormatting
  .Text = cKatakana & "{1,}" & "([・ー]{1,})"
  .Replacement.Text = ""
  .Forward = True
  .Wrap = wdFindContinue
  .Format = False
  .MatchCase = False
  .MatchWholeWord = False
  .MatchByte = False
  .MatchAllWordForms = False
  .MatchSoundsLike = False
  .MatchFuzzy = False
  .MatchWildcards = True
 End With
'
 Do While Selection.Find.Execute
  With Selection.Range
   .CharacterWidth = wdWidthHalfWidth
  End With
  Selection.Collapse wdCollapseEnd
 Loop
' *----*
' 全角カタカナを半角に変換
 Selection.Words(1).Select
 Selection.Collapse wdCollapseStart
'
 With Selection.Find
  .ClearFormatting
  .Text = cKatakana & "{1,}"
  .Replacement.Text = ""
  .Forward = True
  .Wrap = wdFindContinue
  .Format = False
  .MatchCase = False
  .MatchWholeWord = False
  .MatchByte = False
  .MatchAllWordForms = False
  .MatchSoundsLike = False
  .MatchFuzzy = False
  .MatchWildcards = True
 End With
'
 Do While Selection.Find.Execute
  With Selection.Range
   .CharacterWidth = wdWidthHalfWidth
  End With
  Selection.Collapse wdCollapseEnd
 Loop
End Sub ' KatakanaHalfWidthExec  *----*----*
・ツリー全体表示

【12】Re:半角全角変換をするには?
質問  ハンサムなオレ  - 03/1/27(月) 14:40 -

引用なし
パスワード
   便乗質問でスミマセン。
全角カタカナから半角カタカナに変換する方法も教えて下さい。
・ツリー全体表示

【11】Re:半角全角変換をするには?
回答  H.C.Shinopy  - 03/1/22(水) 19:44 -

引用なし
パスワード
   技術評論社の書籍「Word2002 300の技」に
112番目の技として以下のようなマクロが載っています。
(1箇所だけ、私が手を加えて変更しています。
「Selection.Font.Scaling = 50」で文字幅を50%に指定し、
半角文字と同じ幅になるようにしています。
御不要な場合は、この行を削除して下さい。)

尚、文字列変換の対象は「本文」です。
「オブジェクト」のほうは、どうにも判りません。
お許し下さい。

Sub 半角カタカナ全角変換()
 Selection.Words(1).Select
 Selection.Collapse wdCollapseStart
'
 Selection.Find.ClearFormatting
 With Selection.Find
  .Text = "[ヲ-゚]{1,}"
  .Replacement.Text = ""
  .Forward = True
  .Wrap = wdFindContinue
  .Format = False
  .MatchCase = False
  .MatchWholeWord = False
  .MatchByte = False
  .MatchAllWordForms = False
  .MatchSoundsLike = False
  .MatchFuzzy = False
  .MatchWildcards = True
 End With
'
 Do While Selection.Find.Execute
  With Selection.Range
   .CharacterWidth = wdWidthFullWidth
   Selection.Font.Scaling = 50
  End With
  Selection.Collapse wdCollapseEnd
 Loop
End Sub ' 半角カタカナ全角変換  *----*----*
・ツリー全体表示

【10】半角全角変換をするには?
質問  YYS  - 02/12/26(木) 17:39 -

引用なし
パスワード
   はじめて質問致します。
word文章に半角カナ文字が入っていたとします。
これを全て全角に変換する方法があれば教えてください。
なお、対象は「本文」「オブジェクト(可能であれば)」
です。
よろしくお願いします。
・ツリー全体表示

【9】WORDマクロの解説本について教えてください
質問  FIN  - 02/11/13(水) 16:57 -

引用なし
パスワード
   WORD2000や2002に対応したWORDマクロのお勧め解説本って何か
ありますか?
・ツリー全体表示

【8】Re:チェックの仕方について
回答  yu-ji  - 02/10/7(月) 9:37 -

引用なし
パスワード
   ▼ためやん さん:
>□内にレ点を挿入したいのですが方法がわかりません。
>どなたか教えていただけたら幸いです。
>宜しくお願いします。

□というのは、チェックボックスでいいんでしょうか?
#文字の□じゃないですよね?

普通に、

If CheckBox1.Value = True Then
 CheckBox1.Value = False
Else
 CheckBox1.Value = True
End If

という感じで使えます。
・ツリー全体表示

【7】チェックの仕方について
質問  ためやん  - 02/10/1(火) 10:26 -

引用なし
パスワード
   □内にレ点を挿入したいのですが方法がわかりません。
どなたか教えていただけたら幸いです。
宜しくお願いします。
・ツリー全体表示

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