miau's blog?

Excel の結合セルに貼り付け

まだまだ続くお蔵だしシリーズ。
クリップボードのタブ区切りデータを Excel の結合セルに貼り付ける Perl スクリプト。

PasteIntoMergedCells.txt
PasteIntoVisibleMergedCells.pl.txt
(拡張子が .pl だとダウンロードできないので、.txt に変えてます。)

以下詳細。




■使いかた

「クリップボードのタブ区切りデータを Excel の結合セルに貼り付ける」でだいたい説明は済むんですけど、もう少し詳しい話を。

アクティブなブックのアクティブなセルを起点として、クリップボードのタブ区切りデータを貼り付けます。Excel のプロセスが複数走ってる場合は予期しないブックに対して処理が行われるかもしれないので、ご注意ください。

PasteIntoVisibleMergedCells.pl のほうは「表示しない」設定になっているセルに対しては貼り付けを行いません。結合セルを使っていない場合でも、「フィルタを行った後、表示されているセルにだけ貼り付けたい」というようなケースに使うとそこそこ有効に使えると思います。

■なぜ Perl で書くの?

Excel マクロで書かないの?って疑問はあると思うんですが、こういう「どのブックにでもやりたい動作」をシートに埋め込むのは得策じゃないですよね。
ユーザ定義マクロも設定できた気がしますが、読み込み専用ファイルを開くたびに警告が出たので使うのやめました。

Excel のアドインを作るのがベストだとは思ってるんですが、どの環境でも使えるアドインを作る方法って意外と面倒だったような。あとクリップボードへのアクセスとか考えると Perl が一番楽な気がする。IE オブジェクトとか使わなくていいので。

■ついでに

便利なアドインの紹介。

koeだめ(Hiki) - 正規表現Excelアドイン
正規表現検索(Excel用正規表現検索ダイアログアドイン)

Excel で正規表現による検索/置換が行えるアドイン。Ctrl+R を潰されるのがちょっと気に食わないけど、Ctrl+D に比べると利用頻度低いから、まぁいいかなとか。

■その他雑感とか

・「アクティブなブックのアクティブなシートに対して処理」みたいな Perl スクリプトはもっとたくさん書いているんですが・・・まあ面倒なのでサンプルってことでわかりやすいやつを一つ上げる感じで。

・そもそもセルの結合なんかするなって話なんですが。まあ既存のフォーマットが結合セル使いまくりだとそれに従わざるを得ないケースもありますよね。面倒くさいことに。

■paste "into"?

英語よくわからないので、前置詞が into でいいのか結構悩んだ。間違ってたらご指摘下さい。>どなたか


(2007-10-01 追記)

Excel アドイン間違ってた・・・のでリンク修正。
あとショートカットは Ctrl+R で開くダイアログの「バージョン」タブから変更可能っぽいです。
posted at 21:19:01 on 2007-09-30 by miau - Category: Perl No Trackbacks - Permalink

TrackBack

このエントリにトラックバックはありません
現在トラックバックは受け付けていません。

Comments

No comments yet

Add Comments

現在コメントは受け付けていません。
お手数ですが、 こちら のコメント欄にでも記載していただければと思います。