« 2010年9月 | トップページ | 2010年11月 »

2010年10月30日 (土)

■Word VBA(検索文字列の行を選択)

Word VBAネタは久しぶりです。
今、Excel VBAからWord VBAを操作して、Word文書の情報をExcelに貼り付けるマクロを作成しています。
Word VBAで文字列を検索してその文字列を選択状態にする方法はネットにたくさん紹介されていますが、
その検索文字列が存在する行全体を選択する方法が見つかりません。
例えば、”平成22年度~”と記述されている文を探し出して選択したい場合、”年度”で検索するといった
ケースです。
Word VBAで実行するとうまくいくのにExcel VBAからWord VBAを実行するとうまくいかない。
いろいろ試行錯誤をしてやっとできました。同じような箇所で悩んでいる方は参考にしてみてください。
同じロジックにしてもよいのですが敢えて2通り記載しました。
ExcelからWord VBAを操作するポイントは、Wordオブジェクトを生成する点、wdExtendなどの固定値は
実際の数値に変換する点、Word VBAでは.Executeを実行すると検索文字列に飛んで選択してくれますが
なぜかExcel VBAではそれだけではだめで、myRng.Selectなどselectしてやる必要がある点(これを発見
したときは久しぶりに感動しました)です。検索を繰り返す場合は、IF文をDo WhileにしてやればOKです。
お試しあれ。

■Word VBAから実行する場合
Sub test1()
    With Selection.Find
        .Forward = True
        .ClearFormatting
        .MatchWholeWord = True
        .MatchCase = False
        .Wrap = wdFindContinue

        if .Execute(FindText:="年度", Forward:=True, Format:=True) = True then
            Selection.HomeKey Unit:=wdLine, Extend:=wdMove
            Selection.EndKey Unit:=wdLine, Extend:=wdExtend
            lVal = Selection
        end if
        MsgBox lVal
    End With

    ' findのフォーマット
    Selection.Find.ClearFormatting
End Sub

■Excel VBAからWord VBAを実行する場合
Sub test2()
    Set objWord = CreateObject("Word.Application")
    Set objDoc = objWord.Documents.Open("C:\報告書.doc")
    objWord.Visible = True
   
    lFindVal = "年度"
    Set myRng = objDoc.Content
    myRng.Find.ClearFormatting
    myRng.Find.Execute findtext:=lFindVal, Forward:=True
    If myRng.Find.found = True Then
        myRng.Select
        objWord.Selection.HomeKey Unit:=5, Extend:=0
        objWord.Selection.EndKey Unit:=5, Extend:=1
        lVal = objWord.Selection
    End If
    MsgBox lVal
   
    Set myRng = Nothing
    Set objDoc = Nothing
    Set objWord = Nothing
   
End Sub

2010年10月14日 (木)

♪耳コピー(■けいおん!!|天使にふれたよ!)

久しぶりに耳コピーしてみました。けいおん!!最終回の劇中歌に使われた天使にふれたよ!です。
不覚にも涙してしまうくらい感動したので思い余って耳コピーしてしまいました。
ニコ動では、放送後数時間で結構な完成度で耳コピーしてしかも画像をアップする人を”ジョバンニ”と
言うみたいですが、この「天使にふれたよ!」もかなりの早さでアップされていましたね。
私の耳コピーは皆さんのような完成度ではありませんが、左手はベースラインと右手はメロディライン
だけのシンプルなものなので半日くらいで音取りが出来ました。
徐々に和音にしていこうとは思いますが、いろいろな音色で弾いてみて楽しんでいます。
この初秋の時期、ヴァイオリンの音色が寂しさを感じさせてくれて以外にこの曲とマッチします。
左手がチェロと右手がヴァイオリンの競演みたいになって気に入っています。

http://www.nicovideo.jp/watch/sm12114233

天使にふれたよ!の歌詞

« 2010年9月 | トップページ | 2010年11月 »