Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


1103 / 13645 ツリー ←次へ | 前へ→

【76289】シフトアップ ななこ 14/10/28(火) 13:27 質問[未読]
【76290】Re:シフトアップ 独覚 14/10/28(火) 13:32 発言[未読]
【76291】Re:シフトアップ ななこ 14/10/28(火) 15:43 質問[未読]
【76292】Re:シフトアップ 独覚 14/10/28(火) 15:59 発言[未読]
【76298】Re:シフトアップ ななこ 14/10/29(水) 10:04 質問[未読]
【76300】Re:シフトアップ 独覚 14/10/29(水) 11:21 発言[未読]
【76311】Re:シフトアップ ななこ 14/10/30(木) 8:00 質問[未読]
【76315】Re:シフトアップ 独覚 14/10/30(木) 10:02 発言[未読]
【76317】Re:シフトアップ ななこ 14/10/30(木) 10:53 質問[未読]
【76318】Re:シフトアップ 独覚 14/10/30(木) 11:03 発言[未読]
【76321】Re:シフトアップ ななこ 14/10/30(木) 12:42 質問[未読]
【76323】Re:シフトアップ 独覚 14/10/30(木) 13:54 発言[未読]

【76289】シフトアップ
質問  ななこ  - 14/10/28(火) 13:27 -

引用なし
パスワード
   何時もお世話になってます
今回も宜しくお願い致します。

Option Explicit

Sub Macro1()
  Sheet1.Range("G1:H1:I1").Delete Shift:=xlShiftUp
  Range("F1").Select
End Sub

"G1:H1:I1"を削除するとセルごと削除され、シフトアップされます。
これを値だけ削除して、値だけをシフトアップしたいのです。
宜しくお願い致します。

【76290】Re:シフトアップ
発言  独覚  - 14/10/28(火) 13:32 -

引用なし
パスワード
   ▼ななこ さん:
>これを値だけ削除して、値だけをシフトアップしたいのです。
>宜しくお願い致します。
これを手で行う場合、どのようにしますか?
それをマクロの記録で記録してみてはどうでしょうか?

【76291】Re:シフトアップ
質問  ななこ  - 14/10/28(火) 15:43 -

引用なし
パスワード
   記録すると以下のようになります。
  Range("G1:I1").Select
  Application.CutCopyMode = False
  Selection.Delete Shift:=xlUp
  Range("A1").Select
End Sub

これを、コンパクトにしたいのです。
また、記録のコンパクト化をする時に、どんなサイトが解り易いのですか?

【76292】Re:シフトアップ
発言  独覚  - 14/10/28(火) 15:59 -

引用なし
パスワード
   ▼ななこ さん:
>"G1:H1:I1"を削除するとセルごと削除され、シフトアップされます。
>これを値だけ削除して、値だけをシフトアップしたいのです。
これを記録するんだから
J1からJ1以降でデータの入力されている最後から下へ三つ行ったセルまで選択、そのセル範囲をコピーして
G1セルに張り付け(値の貼り付け?)
ではないのかな?

記録したものは
Selection.Delete Shift:=xlUp
があるので自分で
>セルごと削除され、シフトアップされます。
を行っているようですが。

【76298】Re:シフトアップ
質問  ななこ  - 14/10/29(水) 10:04 -

引用なし
パスワード
   ▼独覚 さん,すみましょ式変更させて頂きます。

C5:F9にデータが入っています。
C5:F5を削除で、C6:F9を≪値のみシフトアップ≫させたいのです

以下の記録は、C6:F9を【切り取り】をしC5に【貼り付け】をした記録です。

  Range("C6:F9").Select
  Selection.Cut
  Range("C5").Select
  ActiveSheet.Paste
  Range("A1").Select
End Sub
*C5:F9に罫線が引いております

【76300】Re:シフトアップ
発言  独覚  - 14/10/29(水) 11:21 -

引用なし
パスワード
   ▼ななこ さん:
>▼独覚 さん,すみましょ式変更させて頂きます。
もし、罫線はそのままにしておきたいということであれば「貼り付け」を「値の貼り付け」
にしてはどうでしょう?

【76311】Re:シフトアップ
質問  ななこ  - 14/10/30(木) 8:00 -

引用なし
パスワード
   独覚 さん:
>C5:F9にデータが入っています。
>C5:F5を削除で、C6:F9[罫線入り]を≪値のみシフトアップ≫させたいのです。
>>もし、罫線はそのままにしておきたいということであれば「貼り付け」を「値の貼り付け」
C6:F9を【切り取り】をしC5に【値の貼り付け】ができません。
【ただの貼り付け】ならできます。

【76315】Re:シフトアップ
発言  独覚  - 14/10/30(木) 10:02 -

引用なし
パスワード
   ▼ななこ さん:
ごめんなさい。
書き込みをよく読んでいなかった。
前回

>J1からJ1以降でデータの入力されている最後から下へ三つ行ったセルまで選択、そのセル範囲をコピーして
>G1セルに張り付け(値の貼り付け?)
>ではないのかな?
と書いたようにデータの最終行より下の部分までコピーしておいてそれを「値の貼り付け」
でどうでしょう?

今回の説明であればC5:D5は上書きされるので最初に削除しとく必要は無し。
コピー範囲をC6:F10としておけば9行目もデータなしの10行目のデータで上書きされるので
結果的にクリアされると思うけども。

【76317】Re:シフトアップ
質問  ななこ  - 14/10/30(木) 10:53 -

引用なし
パスワード
   独覚さん
すみません、わたしの説明不足でした。

Sheet1[C6:F10]にデータが入っています。[罫線(格子)で囲っています。]
図形ボタンを設置しています。
ボタン押した時に[C6:F6]データを消して[C7:F10]のデータをシートアップさせたいのです。
*罫線(格子)は[C6:F10]のままで。

【76318】Re:シフトアップ
発言  独覚  - 14/10/30(木) 11:03 -

引用なし
パスワード
   ▼ななこ さん:
>独覚さん
>すみません、わたしの説明不足でした。
>
>Sheet1[C6:F10]にデータが入っています。[罫線(格子)で囲っています。]
>図形ボタンを設置しています。
>ボタン押した時に[C6:F6]データを消して[C7:F10]のデータをシートアップさせたいのです。
>*罫線(格子)は[C6:F10]のままで。

だからその手順を書いていますがどこが問題になっているのかを書いてくれませんか?

【76321】Re:シフトアップ
質問  ななこ  - 14/10/30(木) 12:42 -

引用なし
パスワード
   ▼独覚 さん
不愉快な思いをさせてしまったようですみません。

  Range("C7:F13").Select
  Selection.Copy
  Range("C6").Select
  ActiveSheet.PasteSpecial Format:=3, Link:=1, DisplayAsIcon:=False, _
    IconFileName:=False
  Range("A1").Select
End Sub
です。
これをコンパクトにしたいのですが、教えてください。

【76323】Re:シフトアップ
発言  独覚  - 14/10/30(木) 13:54 -

引用なし
パスワード
   ▼ななこ さん:
特に不愉快に思っているわけでは無いのでご安心を。

ただ、マクロの記録を行っていて気づいたんですが「値の貼り付け」のマクロ記録、
ちょっとおかしな記録の仕方をしているように思えます。

貼り付け位置のセルを選択してから
ActiveSheet.PasteSpecial
という流れは本来、他のアプリケーションなどでコピーしたものをExcelに張り付ける場合のもので
同じExcel内であれば
Range(C6).PasteSpecial
となるのではないかなと。

基本はSelectとSelectionをまとめることなので

>  Range("C7:F13").Select
>  Selection.Copy
>  Range("C6").Select
>  ActiveSheet.PasteSpecial Format:=3, Link:=1, DisplayAsIcon:=False, _
>    IconFileName:=False
>  Range("A1").Select

  Range("C7:F13").Copy
  Range("C6").Select
  ActiveSheet.PasteSpecial Format:=3, Link:=1, DisplayAsIcon:=False, _
    IconFileName:=False
になりますが最初に書いた点を反映させると
  Range("C7:F13").Copy
  Range("C6").PasteSpecial Paste:=xlPasteValues
で、どうでしょうか?

1103 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free