トップページ > プログラム > 2014年07月09日 > 1lOVE9DK

書き込み順位&時間帯一覧

38 位/227 ID中時間01234567891011121314151617181920212223Total
書き込み数1000000000000000000001002



使用した名前一覧書き込んだスレッド一覧
721
726
VBAなんでも質問スレ

書き込みレス一覧

VBAなんでも質問スレ
726 :721[sage]:2014/07/09(水) 00:07:05.52 ID:1lOVE9DK
>>717
>>724-725のコードをそのままExcelのブックにコピペして

Sub ReplaceString()

Const msoTextBox As Long = 17
Const msoCanvas As Long = 20

Private Sub ReplaceShapeText(Shp As Object, SrcText As String, DestText As String)
には
Const wdReplaceAll As Long = 2
を追加したら動きました。

Const msoTextBox As Long = 17

Const wdReplaceAll As Long = 2
は、参照設定すれば不要になったのですが、

Const msoCanvas As Long = 20
は、参照設定しても省略できませんでした。
うちの環境がOffice2000だからかもしれません。

とにかく、この状態でマクロを実行すると、
指定したドキュメントを自動で開いて
その中に複数あるテキストボックス内の
複数ある"@@@"をすべて"2013"に置換することまでは確認できました。
うちの環境では要求どおりの動作を出来ているので
717さんの環境でなぜ正常に動かなかったのかは分からないです。
VBAなんでも質問スレ
728 :726[sage]:2014/07/09(水) 21:11:44.18 ID:1lOVE9DK
>>727
動いたようで何よりでした。おめでとうございます。

ただ、一点気になったのですが、
もしかしてOption Explicitをお使いになってなかったのでしょうか?
私は必ず使用しています。

今回も最初にコピペしたままのコードを実行したら
定数の部分で宣言がされていないというエラーが出たので、
そこを定数で宣言すると言う段取りでコードを動かすことが出来ました。
(定数の値はプリフィクス名でググって見つけました)

つまり、あえてエラーを出すことでデバッグが容易になったのです。
717さんの場合も宣言を強制しておけばすぐに解決できたと思われます。


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。