「ブロック機能」のリニューアルについて

エクセルで作成した表中に測定結果を集約し、管理しております。
測定を行った際に得られる数値を項目毎に対象列のセルへ集積しているのですが、
測定を行っていない項目のセルは空白となるため、空白セルを左詰めで一括削除したく望んでおります。
下記のようにマクロの記録を使用してコードを取得し、実行してみたのですが、エラーになってしまいます。

Private Sub CommandButton1_Click()

Sheets("A").Select
Range("B:AH").Select
Selection.SpecialCells(xlCellTypeBlanks).Select
Selection.Delete Shift:=xlToLeft
Range("A1").Select

End Sub

対象範囲(列)はB列からAH列としておりますが、測定項目が増えると記載列も増えますので、
範囲を柔軟に変更出来るような方法で希望しております。

お手数ですがご教授いただけませんでしょうか?

宜しくお願い致します。

教えて!goo グレード

A 回答 (4件)

提示されたコードでは、実行エラー(RangeクラスのSelectメソッドが失敗しました)に


なりますね。

Private Sub CommandButton1_Click()
Sheets("A").Range("B:AH").SpecialCells(xlCellTypeBlanks).Delete Shift:=xlToLeft
End Sub
とか?

>対象範囲(列)はB列からAH列としておりますが、測定項目が増えると記載列も増えますので、
>範囲を柔軟に変更出来るような方法で希望しております。
求める結果がわからなかったです。
    • good
    • 0
この回答へのお礼

希望通りの動作が得られました。
とても感謝しております。ありがとうございました。

>求める結果がわからなかったです。
大変申し訳ありませんでした。
Range("B:AH")の変更で対応することを望んでおりました。

お礼日時:2009/05/07 15:15

意味が違ってるかも知れませんが…



先に処理したい範囲を選択しておいて、その範囲に対して同様の処理(左詰め)を行いたいのであれば、
 Private Sub CommandButton1_Click()
  Selection.SpecialCells(xlCellTypeBlanks).Delete Shift:=xlToLeft
 End Sub
みたいにすればよいのでは?

選択したものが、セル範囲でない場合はエラーになるので、最初にそのチェックを入れておいたほうがよいですけど。

違っていたら、無視してください。
    • good
    • 1
この回答へのお礼

ご回答いただいたコードの前部(Selection)を
Sheets("A").Range("B:AH") に変更して解決致しました。
ご教授いただき、ありがとうございました。

お礼日時:2009/05/07 15:23

提示された、コードでエラーでませんけど?


もう少し詳しく説明して
    • good
    • 0
この回答へのお礼

”RangeクラスのSelectメソッドが失敗しました”と表示されておりましたが、解決致しました。
hige_082様には毎度ご返答いただき、とても感謝しております。
ありがとうございました。

お礼日時:2009/05/07 15:18

どのようなエラーメッセージが表示されますか?

    • good
    • 0
この回答へのお礼

”RangeクラスのSelectメソッドが失敗しました”と表示されておりましたが、解決致しました。
お気に留めていただき、心より感謝しております。
ありがとうございました。

お礼日時:2009/05/07 15:19

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

このQ&Aを見た人はこんなQ&Aも見ています

教えて!goo グレード

このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング