相談者 Excelでデータ入力をしていると、前に入力したデータとほぼ同じデータを入力する場面にちょこちょこ出くわすんですよね。そんな時、前に入力したデータ行をコピーして、最下行にペースト(貼り付け)しているんですが──もちろん手動で──これをマクロで自動化することってできますか?
丸井 もちろんできますよ。
相談者 私、マクロのこともVBAのことも、まったくわからないんですけど、それでもできますか?
丸井 ええ。Excelの基本操作(初級レベル)ができる人なら誰でも簡単に導入できる方法をお伝えしますので、ご安心ください。
相談者 よかったー。
選択行を一瞬で最下行にコピペするマクロの簡単導入4ステップ
- コマンドボタンを設置する
- コマンドボタンのプロパティを設定する
- コマンドボタンのコードを記述する
- デザインモードをオフにする
ステップ1. コマンドボタンを設置する
[開発]タブ
↓
[挿入]
↓
[コマンドボタン(ActiveXコントロール)]
↓
コマンドボタンを設置したい場所でドラッグをして、コマンドボタンを設置
↓
ステップ2. コマンドボタンのプロパティを設定する
設置したコマンドボタンを選択して右クリック
↓
[プロパティ]
↓
「プロパティ」ウインドウの[全体]タブ
↓
(オブジェクト名)に「行コピー」、
Captionに「行コピー」、
を入力
↓
「プロパティ」ウインドウ右上の[✕]
↓
ステップ3. コマンドボタンのコードを記述する
設置したコマンドボタンを選択して右クリック
↓
[コードの表示]
(「Microsoft Visual Basic」が起動します。)
↓
「Microsoft Visual Basic」ウインドウの、「Private Sub 行コピー_Click()」と「End Sub」の間に次の文章を入力(コピペ)
↓
If ActiveCell .Value = “” Then
Exit Sub
Else
Dim コピー元 As Range
Set コピー元 = ActiveCell.EntireRow
Dim 貼り付け先 As Range
Set 貼り付け先 = ActiveCell. _
CurrentRegion.Rows.End(xlDown). _
EntireRow.Offset(1)
コピー元.Copy 貼り付け先
End If
↓
ステップ4. デザインモードをオフにする
「Microsoft Excel」ウインドウを選択
↓
[開発]タブ
↓
[デザインモード](オフにする)
まとめ
丸井 以上です。ね、簡単でしたでしょ?これで今後はいつでも好きな時に、コピーしたい行のセル(空欄以外)を一つ選択して「行コピー」コマンドボタンをクリックするだけで、その行のコピーが一瞬で最下行にペーストされます。改めて、簡単導入4ステップをお伝えしますと──
- コマンドボタンを設置する
- コマンドボタンのプロパティを設定する
- コマンドボタンのコードを記述する
- デザインモードをオフにする
相談者 おぉ、できた!いやーありがとうございました、とっても助かりました。
丸井 こちらこそ、ありがとうございました。
参考文献:『達人が教えるExcel VBAテクニック207』早坂清志著・毎日コミュニケーションズ
追伸
美しいデザインの四書(見積書・納品書・請求書・領収書)をすばやく作成・保存・集計・検索したいですか?