タブかカンマの挿入のマクロNo.28988
みみずく さん 10/10/01 14:43
 
いつも便利に使わせていただいています。

7桁の数字が複数行並んでいます。最終的にはその7桁の数字をひとつずつ独立させ
て、エクセルの各セルに貼り付けたいのです(A1〜A7のセルに一つずつ入るようにし
たいということです)。そこで秀丸を使って7桁の数字の間に、タブかカンマを打ち
込んで、CSVファイル経由で移行させたいと思いました。

マクロを使えば簡単に出来そうな気がするのですが、どうするのが一番良いのでしょ
うか。

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

[ ]
RE:28988 タブかカンマの挿入のマクロNo.28989
秀丸担当 さん 10/10/01 15:57
 

正規表現を使った置換をするといいと思います。
例えばテキストは以下のようなものとします。(数字はでたらめです)

1234567
0985635
2384234

[検索(S)]→[置換(R)...]のダイアログボックスで、

検索文字列:([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])
置換文字列:\1\t\2\t\3\t\4\t\5\t\6\t\7
正規表現をON

として置換するとタブ区切りに置換されます。
カンマの場合は

置換文字列:\1,\2,\3,\4,\5,\6,\7

とするといいと思います。
正規表現を使うと、記号などが意味を持つようになるので、普段はOFFにして、使
うときだけONにされることをお勧めします。
正規表現がどういう意味を持つかなどはヘルプに書いてあります。


マクロにするとしたら、以下のようなマクロでできると思います。
マクロ中では \ を \\ と書く必要があるので注意が必要です。

#searchoptionOrg = searchoption;
$searchbufferOrg = searchbuffer;
$replacebufferOrg = replacebuffer;
replaceallfast "([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])",
    "\\1\\t\\2\\t\\3\\t\\4\\t\\5\\t\\6\\t\\7",regular;
setsearch $searchbufferOrg,#searchoptionOrg;
setreplace $replacebufferOrg;


あと、キー操作の記録と再生を使う方法もあります。
マクロや正規表現の知識が無くてもできます。
1.カーソルをファイル先頭に置く
2.[マクロ]→[キー操作の記録開始/終了]で開始(標準でShift+F1)
3.→入力、タブ入力、を7回繰り返す
4.→入力をあと2回して、次の行の先頭に行く
5.[マクロ]→[キー操作の記録開始/終了]で終了(標準でShift+F1)

こうして記録ができたら、あとは[マクロ]→[キー操作の再生](標準でShift+
F2)を繰り返すとできます。

大量にある場合は「キー操作のリピート再生」を使うと簡単にできます。(V8.00
以降)
[その他]→[キー割り当て]では「その他」系、
[その他]→[メニュー編集]では「マクロ」の中にあります。

[ ]
RE:28989 タブかカンマの挿入のマクロNo.28990
みみずく さん 10/10/01 16:50
 
早々に、マクロも作っていただき、有り難うございました。
繰り返し=マクロと思っていましたが、正規表現による置換で行けるのですね。早速
トライしてみます。
取り急ぎ,お礼まで。

[ ]