siyoudekimasen’s blog

カオスとバグの人

【VBA】楽なコピペをめざして ~セル結合へのテキスト情報入力~

どうも、バグです。 今回、なぜかVBAのものが完成してたので、備忘録として記事を書きます。

目的

週末にエクセルをイジる機会があったんですが、コピペをした際にエラーではじかれました。 はい、皆さんダイスキ、セル結合です。 ……えっ、一行ごとにセル結合しているの? いちいち皆、解除しながら作業しているの?めんどくない? という思いもあって、タイミングよく以下のTogetterも公開されて、「やってみるしかないよな~」という気持ちで作成。 VBAerなら、セル範囲の指定が面白いと思うのでぜひともおすすめです。

ワクワクV036回目レンジのグループと組み合わせ方(ほえほえ@hoehoe1234さんまとめ) togetter.com

なので、今回のマクロは、「複数のセル結合している範囲に対して、コピーしてきたテキスト情報を出力、再結合」が目的となってます。

環境

Office365

処理概要

処理概要フロー
1. クリップボードからテキスト情報を配列で取得
2. エラー判定(選択範囲より大きいテキスト情報を格納していないかチェック)
3. 入力対象のセルの結合解除、テキスト入力、再結合

動作イメージ

動作としては、以下の通りとなります。
①結合セルを選択し、マクロ登録したボタンをクリック!

f:id:siyoudekimasen:20210411213114p:plain
結合セルを選択し、隣のセルをコピペする

②コピーしていたテキスト情報が、結合セルの中に入力されます。なおかつ、結合もそのままです。

f:id:siyoudekimasen:20210411213729p:plain
結合セルに、結合状態を維持したままテキスト情報が 入力

③もし、コピーしたテキストが、選択範囲よりも大きい場合

f:id:siyoudekimasen:20210411214051p:plain
もし、テキスト情報が選択範囲よりも多い場合

④下の画面のようにエラーを返します。

f:id:siyoudekimasen:20210411214213p:plain
もし、テキスト情報が選択範囲よりも多い場合エラーを返します

ソース

今後の課題

……ソースの乗っけ方わかりません……? なんかコメントが外れたりしてます???

なんか……もっと勉強してきます。

後、VBAに関しては、このソース、 テキスト情報をコピーしないとエラー停止してしまうので、そこは大きな課題ですね。

あと、Undo機能をちゃんと搭載できれば、普通に [Ctrl] + [V] で結合セルか判断して実行できるので有益なんだけどな(´・ω・`)

このブログは後編みたいな形で一応の解説をつけるつもりです。 もし、質問があればコメントいただけると幸いです。(文章読みづらいでも可)