お世話になっております。
別シートの文字を別シートに入力する際に空白のセルはそのまま空白にする処理についてご教示をお願い致します。
sheet1、C2からC11まで従業員の氏名が入力されております。
これをsheet2、B5からB14までコピーするプログラムをサイトを参考に作りました。
Sub test()
Dim sh1 As Worksheet
Dim sh2 As Worksheet
Set sh1 = Worksheets("sheet1")
Set sh2 = Worksheets("sheet2")
sh2.Range("B5:B14").Value = sh1.Range("C2:C11").Value
End Sub
これで入力出来る様にはなったのですが、sheet2の従業員のセルを削除した際に、ここで同様にsheet1の従業員の氏名も消します。
このプログラムですとsheet2の氏名セルを削除致しますと下にある違うデータが入力されているセルが上に上がり上記のプログラムを実行しますと消したくないデータセルまで白くなってしまいます。
セルを結合しているセルなどがありそのセルがこの範囲に入ると白くなります。
上記のプログラムですと当然の結果だと思うのですが、これを消さない方法のプログラムを教えて欲しい内容になります。
よろしくお願い致します。
No.4ベストアンサー
- 回答日時:
実行行は以下で良いかと思います。
結構厄介ですが、上手く行くと思います。
'Sheet1のC2以下の有効最終行を求める
END11 = Sh1.Range("C2").End(xlDown).Row
'Sheet1のC2~有効最終行までの行数を求める
行数 = END11 - Sh1.Range("C2").Row + 1
'Sheet2のB5以降の有効最終行を求める
END21 = Sh2.Range("B5").End(xlDown).Row
'Sheet2のB5~有効最終行を一旦削除
Sh2.Range("5:" & END21).Delete
'Sheet2のB5以降に行を追加しながら転送
For i = 1 To 行数
Sh2.Range("B" & 5 + i - 1).EntireRow.Insert
Sh2.Range("B" & 5 + i - 1).Value = Sh1.Range("C" & 2 + i - 1).Value
Next i
No.3
- 回答日時:
>>Sh2.Range("B5:B14").Value = Sh1.Range("C2:C11").Value
B5:B14は範囲が変動する、と言う事ですか?
B5以下に、「Sheet1のC2以下の有効分」を詰めて並べたい訳ですか?
3個しか無かったら、Sheet2は「B5,B6,B7」に埋めたい?
つまり、下図の様にしたい???
もしそうなら、Sheet1のJさんより下は少なくとも1個は空白セルが無いと自動では上手く行きません。
Sheet1のC2:C11も変動する、と言ってる訳ですから・・・。
No.2
- 回答日時:
やっぱり解りません。
どうしたいんだろう??です。>>sheet2の従業員のセルを削除した際に、ここで同様にsheet1の従業員の氏名も消します。
ここに言いたい事が書いて有る、様な気もします。
>>sheet2の従業員のセルを削除した際
sheet2はセル削除、つまり行ごと削除するんですね?
>>同様にsheet1の従業員の氏名も消します。
sheet1は削除とか行ごと削除では無く、「従業員の氏名」をクリアするんですね??
Aさん、Bさん、Cさん、Dさん、Eさん、Fさん、Gさん、となってたら
Aさん、Bさん、Cさん、Dさん、ブランク、ブランク、Gさん、とする訳なんですか??
自分の思ってる事を正確に相手に伝えるのは、大変に難しいです。
でも、頑張って伝えて下さい。
言葉足らずなご説明で申し訳ございません。
再度細かく質問の内容を述べさせていただきます。
sheet1のC2からC11まではAさんからJさんが入力されております。
その従業員氏名データをsheet2のB5からB14まで出力致します。
ここでsheet2のEさん、Fさんセルを削除しsheet1の氏名セルのC6にGさん、C7にHさんとセルを上にずらしC2からC9にAさん、Bさん、Cさん、Dさん、Gさん、Hさん、Jさん、Iさんと入力をします。
ここでvbaを実行致しますとプログラムされておりますC2からC11のC10とC11のセルが空欄、またsheet2のB5からB14に下にある「引継ぎ表」のセルが上に上がる為、指定範囲と重なりセルの文字が消える問題が出ております。
当たり前の事なのですが。
この担当従業員が変わる際にVBAのプログラムの指定範囲を毎回毎回変えるのは大変なので入力されている文字のセルは消さない方法があればご教示をいただきたい質問になります。
よろしくお願い致します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel VBA 空白セルがあったら...
-
VBA 別ブックから条件に合うも...
-
エクセル チェックボックスの...
-
Excel VBA コンボボックスで空...
-
Excel 入力規則のリストのカー...
-
エクセル: セルの枠を超えて表示
-
エクセルでの計算式で求められ...
-
入力後に日付順になるように自...
-
エクセルのセル内の余白の設定...
-
貼り付けで複数セルに貼り付けたい
-
エクセルで隣接していない複数...
-
Excelで 分:秒 と表示させる...
-
エクセル:マクロ「Application...
-
エクセルで表示形式の時刻の「0...
-
Excelの条件付き書式設定の太い...
-
【エクセル】関数で「A1が0でな...
-
Excelで全角の数字が半角になっ...
-
エクセルの枠の中の文字が青文...
-
エクセルのアポストロフィを一...
-
日付だけを変更して印刷(Excel)
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel VBA 空白セルがあったら...
-
Excel_VBAについて質疑です。(...
-
VBA 別ブックから条件に合うも...
-
Excel VBA コンボボックスで空...
-
マウスを乗せたときにセルの色...
-
Excel 入力規則のリストのカー...
-
クリップボードの内容を変数に...
-
GridViewの行選択イベントを発...
-
エクセルの取り消し線を検出す...
-
マクロについて質問です 範囲内...
-
VBA 文字列を1文字ずつ調べて"...
-
VBA サンダーバードのメール自...
-
【VB.NET】DataGridViewセルの...
-
Excelマクロで空白セルの大小比...
-
【VBA】セルが空白の場合に処理...
-
SPREADで1つのセルに複数のチ...
-
DataGridViewでセルを結合したい
-
複数セルに〇印をつけるマクロ
-
VB2005 DATAGRIDVIEWでの矢印キ...
-
エクセル チェックボックスの...
おすすめ情報
削除前の図になります。
従業員Dさん、Eさんセルを削除してもこの様にしたいです。