今回、エクセルの空白だけ指定文字を入れるという難儀な作業がありました。
普通であれば、全部を一度削除して改めて、そこに一気に上書きという手順を行うのですが、なんと、すでに埋められているセルには、保護がかけられていて、自分ではパスワードがわからないために、隙間を埋めていかなければならないという単純ですが、とても時間がかかる作業がありました。今回は約1000行のファイルが10ファイル、これやってられないと思い、どうしたらできるかを検討しました。
作業の内容
上記の場合、2行とかなら、マウスで2行を選択すればよいですが、もっと多い場合には
まず、あたまのセルを選択して、ENDキーで下の区切りまで、選択して、コピーし、
それから、もとの空いている場所にいって、貼付を行うという手順となります。
下準備
上記エクセルの図のように、貼り付けなければならない文字列ここではC列がはじめにあるわけではないので、
まずは、貼り付けたい飛び飛びの文字列を作って準備をしなければ、なりません。
元のファイルをコピーして、空白行と既にある行に分けて、空白行のみフラグを立てておいて、フィルターで文字列のある部分を一括削除して、フラグをコピーしたい文字に置き換える等で、エクセルファイルを作成してください。
エクセルファイルに以下のマクロを入れて動かす準備が整いました。
新マクロ入りのエクセルファイルと、元の貼り付け先のファイルの2つを開いておいてください。
貼付先のファイル名は、A3セルにファイル名を入れておいてください。
マクロ
Sub JPNコピー() ' JPNコピー Macro ' Keyboard Shortcut: Ctrl+z 貼り付けられるファイル名 = Cells(3, 1) ' アクティブセルからエンドキーで下まで選択する方法 Range(Selection, Selection.End(xlDown)).Select Selection.Copy ' 貼り付けられるファイルに移動して、貼付 Windows(貼り付けられるファイル名).Activate Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Application.CutCopyMode = False ' エンドキーで、下に移動し、次の貼付場所に移動する。 Selection.End(xlDown).Select ActiveCell.Offset(1, 0).Range("A1").Select Windows("JPNを入れるマクロ.xlsm").Activate End Sub
上記は、Aではなく、”JPN”という文字列を実際に貼り付けたので、JPNコピー()という名称にしてありますが、JPNに限定しているわけではありません。
①まず、貼付先のファイルの貼り付けたいセルをはじめに選択しておきます。
②新たに作った貼り付けたい文字列の一番上の行をアクティブセルとしておいてください。
③Ctrl+zで、マクロを動かす
の順番です。
貼り付けたい部分の空白までの塊をコピーして、貼付先のアクティブセルに貼付、その後、次の空白の部分までアクティブセルを移動して、元のマクロのファイルに戻ってきます。
次のコピーしたい頭のセルをコピーしてCtrl+zで同じことを繰り返していくという内容です。
今回のポイント 今あるセルからエンドキーまでのセルを選択する
Range(Selection, Selection.End(xlDown)).Select
コメント