アプリ版:「スタンプのみでお礼する」機能のリリースについて

EXCEL2010を使用しています。
シートAではセルA1からA10に順にデータを入力していきます。
A1からA10のすべてにデータを入力する場合やA1からA4のみデータを入力する場合等があります。
このA1からA10のデータをシートBのA1からJ1にコピーしたいと思っています。
空白以外のデータをコピーして、コピー後はシートBのA1:J10で空白の列は削除したいと
思っています。
(例)
シートA
A1 ○
A2 ○
A3 ×
A4以降すべて空白

シートB
A1 ○
B1 ○
C1 ×
D1からJ1までは列ごと削除

これをVBAで作成したいのですがどなたか詳しい方押してください。

A 回答 (2件)

一例です。



シートAタブ上で右クリック→コードの表示→以下のコードを貼り付け→F5キー押下でマクロ実行してみて下さい。

Sub sample()
With Worksheets("シートB")
For i = 10 To 1 Step -1
If Cells(i, 1) = "" Then
.Columns(i).Delete
Else
.Cells(1, i).Value = Cells(i, 1)
End If
Next
End With
End Sub
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
このような方法もあるのですね。助かります。

お礼日時:2011/05/31 13:47

作成例:


sub macro1()
’行列を入れ替える
 worksheets("SheetA").range("A1:A10").copy
 worksheets("SheetB").range("A1").pastespecial _
  paste:=xlpasteall, operation:=xlnone, skipblanks:=true, transpose:=true
’空白を削除する
 on error resume next
 worksheets("SheetB").range("A1:J1").specialcells(xlcelltypeblanks).delete shift:=xlshifttoleft
end sub


貼り付け先はA1:J1ですが,もしもホントに「列ごと削除して良い削除したい」なら
 worksheets("SheetB").range("A1:J1").specialcells(xlcelltypeblanks).entirecolumn.delete shift:=xlshifttoleft
とします。




#あなたの言う「空白」がホントは「空っぽ」の意味じゃなく「空白に見えるけど実はこれこれが入ってました」の場合,正しい具体的な内容を添えてご相談を投稿しないとダメな場合があります。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
さっそく試してみたいと思います。

お礼日時:2011/05/31 13:03

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!