Office関連

ちゃうちゃう! 2.0を操作するWordマクロ

テキスト比較ソフト「ちゃうちゃう!」がバージョンアップされました。」でも紹介している「ちゃうちゃう!」は、プログラムのコード比較や翻訳作業を行う際の原文・訳文比較などに使える便利なソフトです。

文をソフトに貼り付けてから比較処理を実行するわけですが、文の貼り付けは「テキスト比較 ドラッグ&ドロップは可能?」にあるように、ドラッグ&ドロップをすることでも対応可能です。

ただ、ライターや翻訳者の方は、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」プロシージャは、実行するとクリップボードにある文字列をちゃうちゃう!の左側のウィンドウに貼り付けます。

ControlChawChaw_01

そしてこれらのマクロをキーボードに割り当てることで(「「キーボードのユーザー設定」でキーボードにマクロを登録する方法|みんなのワードマクロ」参照)、キーボードのみでちゃうちゃう!を操作できるようになります。

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

2014年9月の人気記事前のページ

[Office用アプリ]第三回 Apps for Office 勉強会で登壇しました。次のページ

関連記事

  1. Office関連

    「もし宇宙人が地球レポートをまとめたら」動画公開

    PLAY! Office第三弾、「もし宇宙人が地球レポートをまとめたら…

  2. Office関連

    Office 2016 Preview for Windowsのサポート情報まとめ

    「Office のサポート ページ - support.office.…

  3. Office関連

    VBAで○○を禁止したい!・・・と思う前に。

    Office系Q&Aサイトを見ているとたまに出てくるのがこの質問。…

  4. Office アドイン

    PowerPoint用のOffice用アプリ

    当ブログでも散々紹介しているOffice用アプリ(apps for O…

  5. Office関連

    PowerPointスライドショー終了後ファイルを閉じるVBAマクロ

    「Excel VBA PowerPoint スライドショー後閉じる」と…

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

Time limit is exhausted. Please reload CAPTCHA.

※本ページはプロモーションが含まれています。

Translate

zh-CNzh-TWenfrdejakorues

最近の記事

アーカイブ

PAGE TOP