excel で 改行に置換するNo.07660
おすぎ さん 15/09/01 18:34
 
いつもお世話になっています。

com の呼び出しを使って、
excel ファイル上で 記号 → 改行 の置換を試みていますが、
うまくいきません。

下のようなコードだと「vbLf がおかしい」とエラーになります

member #objCells, "Replace", "□", vbLf, 2;

何か手立てがあったら、教えていただけましたら助かります。

よろしくお願いいたします。

[ ]
RE:07660 excel で 改行に置換するNo.07661
でるもんたいいじま さん 15/09/01 19:17
 
こんばんは。秀丸ユーザの「でるもんた・いいじま」です。

> com の呼び出しを使って、
> excel ファイル上で 記号 → 改行 の置換を試みていますが、
> うまくいきません。
>
> 下のようなコードだと「vbLf がおかしい」とエラーになります
> member #objCells, "Replace", "□", vbLf, 2;

これはたぶん、この命令のパラメータは最初に秀丸の式として評価され、
それからCOMに渡されるのが原因だと思います。
現に、#objCellsとか、最後のセミコロンとか、VBAにはない書式を
使ってるじゃないですか。それは、これがCOMの命令である以前に
秀丸のマクロだからです。

というわけで、vbLf を "\n" に変えれば、とりあえずエラーは
出なくなると思います。
ただ、vbCrLfが渡されてしまう可能性は否定できませんので、
担当様の公式回答をお待ちください。

[ ]
RE:07661 excel で 改行に置換するNo.07668
秀丸担当 さん 15/09/02 12:14
 

vkLfはVisual Basicの定数で、秀丸マクロでは解釈できないです。
でるもんたいいじまさんの言われる通り、"\n"にするといいと思います。

これはどちらも制御コードのLFで、値は数値で言うと10になります。
16進数では 0x0A で、これを文字列で表して"\x0A"と書いても同じになります。

Visual BasicにはChrという関数があるようで、これと同じように秀丸マクロで
は char(10) や char(0x0A) と書く方法もあります。

[ ]
RE:07668 excel で 改行に置換するNo.07669
おすぎ さん 15/09/02 12:48
 
でるもんたいいじまさま
秀丸担当さま

ご指示の3通り、すべて置換しました。
本当にありがとうございました。


"恐れ入谷の鬼子母神"です。



[ ]