「テキスト比較ソフト「ちゃうちゃう!」がバージョンアップされました。」でも紹介している「ちゃうちゃう!」は、プログラムのコード比較や翻訳作業を行う際の原文・訳文比較などに使える便利なソフトです。
文をソフトに貼り付けてから比較処理を実行するわけですが、文の貼り付けは「テキスト比較 ドラッグ&ドロップは可能?」にあるように、ドラッグ&ドロップをすることでも対応可能です。
ただ、ライターや翻訳者の方は、PCでの作業をほとんどキーボードのみで行う方も多く、いちいちマウスに持ち替える事自体面倒に思う人も多いだろうと思います。
そこで、マウス操作無しでちゃうちゃう!を操作できるよう、Wordのマクロを考えてみました。
※ 下記マクロはちゃうちゃう!のユーザー認証が終わっていることを前提としたものです。ちゃうちゃう!起動時に認証を促すダイアログが表示される場合は、先にユーザー認証(有料)を行ってください。
※ 「ChawChawExePath」で指定している「ChawChaw2.exe」のパスは必要に応じて変更してください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 | Option Explicit Private Const ChawChawExePath As String = "C:\Program Files\ちゃうちゃう! 2.0\ChawChaw2.exe" '[ChawChaw2.exe]のパス ※ 必要に応じて変更 Private Const ChawChawTaskName As String = "ちゃうちゃう! 2.0" Private Const WM_COMMAND = &H111 Public Sub PasteLeftChawChawWindow() 'ちゃうちゃう!の左ウィンドウに文字列貼り付け Dim tChawChaw As Word.Task Set tChawChaw = GetChawChawTask() If tChawChaw Is Nothing Then MsgBox "ちゃうちゃう!が見つかりませんでした。" & vbCrLf & _ "処理を中止します。" , vbCritical + vbSystemModal Exit Sub End If tChawChaw.SendWindowMessage WM_COMMAND, &HFF01, 0 '左ウィンドウ選択 tChawChaw.SendWindowMessage WM_COMMAND, &HE125, 0 '文字列貼り付け End Sub Public Sub PasteRightChawChawWindow() 'ちゃうちゃう!の右ウィンドウに文字列貼り付け Dim tChawChaw As Word.Task Set tChawChaw = GetChawChawTask() If tChawChaw Is Nothing Then MsgBox "ちゃうちゃう!が見つかりませんでした。" & vbCrLf & _ "処理を中止します。" , vbCritical + vbSystemModal Exit Sub End If tChawChaw.SendWindowMessage WM_COMMAND, &HFF00, 0 '右ウィンドウ選択 tChawChaw.SendWindowMessage WM_COMMAND, &HE125, 0 '文字列貼り付け End Sub Public Sub ClearLeftChawChawWindow() 'ちゃうちゃう!の左ウィンドウをクリアする Dim tChawChaw As Word.Task Set tChawChaw = GetChawChawTask() If tChawChaw Is Nothing Then MsgBox "ちゃうちゃう!が見つかりませんでした。" & vbCrLf & _ "処理を中止します。" , vbCritical + vbSystemModal Exit Sub End If tChawChaw.SendWindowMessage WM_COMMAND, &HFF01, 0 '左ウィンドウ選択 tChawChaw.SendWindowMessage WM_COMMAND, &HE121, 0 'すべて消去 End Sub Public Sub ClearRightChawChawWindow() 'ちゃうちゃう!の右ウィンドウをクリアする Dim tChawChaw As Word.Task Set tChawChaw = GetChawChawTask() If tChawChaw Is Nothing Then MsgBox "ちゃうちゃう!が見つかりませんでした。" & vbCrLf & _ "処理を中止します。" , vbCritical + vbSystemModal Exit Sub End If tChawChaw.SendWindowMessage WM_COMMAND, &HFF00, 0 '右ウィンドウ選択 tChawChaw.SendWindowMessage WM_COMMAND, &HE121, 0 'すべて消去 End Sub Public Sub CompareFullTextChawChaw() 'ちゃうちゃう!で全文比較実行 Dim tChawChaw As Word.Task Set tChawChaw = GetChawChawTask() If tChawChaw Is Nothing Then MsgBox "ちゃうちゃう!が見つかりませんでした。" & vbCrLf & _ "処理を中止します。" , vbCritical + vbSystemModal Exit Sub End If tChawChaw.SendWindowMessage WM_COMMAND, &H8015, 0 '全文比較 End Sub Public Sub TileChawChawWindowsHorizontally() 'ちゃうちゃう!のウィンドウを上下に並べて表示 Dim tChawChaw As Word.Task Set tChawChaw = GetChawChawTask() If tChawChaw Is Nothing Then MsgBox "ちゃうちゃう!が見つかりませんでした。" & vbCrLf & _ "処理を中止します。" , vbCritical + vbSystemModal Exit Sub End If tChawChaw.SendWindowMessage WM_COMMAND, &HE133, 0 '上下に並べて表示 End Sub Public Sub TileChawChawWindowsVertically() 'ちゃうちゃう!のウィンドウを左右に並べて表示 Dim tChawChaw As Word.Task Set tChawChaw = GetChawChawTask() If tChawChaw Is Nothing Then MsgBox "ちゃうちゃう!が見つかりませんでした。" & vbCrLf & _ "処理を中止します。" , vbCritical + vbSystemModal Exit Sub End If tChawChaw.SendWindowMessage WM_COMMAND, &HE134, 0 '左右に並べて表示 End Sub Private Function GetChawChawTask() As Word.Task 'ちゃうちゃう!のTaskオブジェクト取得 Dim ret As Word.Task Dim t As Word.Task Set ret = Nothing '初期化 If IsChawChawVisible = False Then Shell ChawChawExePath For Each t In Application.Tasks If t.Visible = True And t.Name = ChawChawTaskName Then Set ret = t Exit For End If Next Set GetChawChawTask = ret End Function Private Function IsChawChawVisible() As Boolean 'ちゃうちゃう!の表示状態取得 Dim t As Word.Task Dim ret As Boolean ret = False '初期化 For Each t In Application.Tasks If t.Visible = True And t.Name = ChawChawTaskName Then ret = True Exit For End If Next IsChawChawVisible = ret End Function |
各マクロの説明はコメントで記載してある通りですが、たとえば「PasteLeftChawChawWindow」プロシージャは、実行するとクリップボードにある文字列をちゃうちゃう!の左側のウィンドウに貼り付けます。
そしてこれらのマクロをキーボードに割り当てることで(「「キーボードのユーザー設定」でキーボードにマクロを登録する方法|みんなのワードマクロ」参照)、キーボードのみでちゃうちゃう!を操作できるようになります。
Word&ちゃうちゃう!ユーザーの皆さん、是非お試しください。
■ 関連Webページ
・「ちゃうちゃう!」で2つの文書を比較するWordマクロ
//www.ka-net.org/blog/?p=1334
・テキスト比較ソフト「ちゃうちゃう!」がバージョンアップされました。
//www.ka-net.org/blog/?p=4724
・2つの文書を比較するWordマクロ
//www.ka-net.org/blog/?p=4734
この記事へのコメントはありません。