excellのマクロを使って、
次のようなデータで、データのない行を削除して詰めたいのですが。
どうすればよいのでしょうか。

  A   B   C
1 t1  **  **
2 t2  **  **

4 t3

6 t4

 を

1 t1  **  **
2 t2  **  **
3 t3
4 t4

 にしたい。

このQ&Aに関連する最新のQ&A

A 回答 (3件)

終了(データ件数)条件が不明ですので、6固定のサンプルです。


ポイントは、データ(行)の最後からループすることです。
そうすると、削除したデータと検索する位置が重ならないためすっきりとしたプログラムとなります。

Dim i As Integer

For i = 6 To 1 Step -1 '6のところにデータ総件数(空行含む)
If Cells(i, 1) = "" Then
Rows(i).Delete
End If
Next i
    • good
    • 0
この回答へのお礼

簡単にできるんですね。
最後からループするのは、気づきませんでした。
使わせてもらいます。
ありがとうございました。

お礼日時:2001/07/28 09:59

手っ取り早いのは、


1.「行番号」の列を追加し連番を付与する。
2.列A(tの値の列)をキーにソートする。
3.そうすると「空白行」だけ固まりますから「行番号のみの行を削除」。
4.「行番号」列をキーにソートし直す。
5.最後に「行番号」列を削除する。

上記の手作業を「マクロの記録」で行えばVBAになるし、
そこまでしなくても、と思えば手作業でもたいした手間ではないと思います。

カーソルキーの操作でCtrl+矢印キーでその方向の端まで移動できるので
3.の処理はスクロールさせなくても可能です。
(範囲選択するならCtrl+Shift+矢印キーでok)
    • good
    • 0
この回答へのお礼

そういう方法があるんですね。
全然、思いつきませんでした。
参考になりました。

ありがとうございました。

お礼日時:2001/07/28 10:04

他力本願ですが…。

下記サイトを紹介します。

参考URL:http://www2.odn.ne.jp/excel/waza/macro.html#SEC4
    • good
    • 0
この回答へのお礼

早速、見に行きました。
解説があって、いいですね。
参考になります。
ありがとうごさしました。

お礼日時:2001/07/28 10:01

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

このQ&Aと関連する良く見られている質問

Qエクセルで同じA列の中に、1,2,3,4,5,6,2,3,4,2,1,3,2,2,2,3,1という

エクセルで同じA列の中に、1,2,3,4,5,6,2,3,4,2,1,3,2,2,2,3,1,3,1というような順番で数字が並んでいます。

その数字の中で、1→3と3→1になるものがいくつあるか求めたいのですが、出す関数・マクロがわかりません。
教えていただけないでしょうか?

よろしくお願いします。

Aベストアンサー

こんばんは!

>A列の中に
とは行方向に数値が入っている!というコトでしょうか?

そうであれば
表示したいセルに
=COUNTIFS(A1:A1000,1,A2:A1001,3)+COUNTIFS(A1:A1000,3,A2:A1001,1)
としてみてください。

「1」の次の行が「3」の場合と
「3」の次の行が「1」の場合をプラスしています。m(_ _)m

QExcelで1を入力し、セルの右下を+でドラッグした時、1,2,3,4となるようにしたい

Excelで1を入力し、セルの右下を+でドラッグした時、1,2,3,4となるようにしたいのですが、どのようにしたら良いでしょうか?文字列にしても数値にしても1,2,3,4となってしまうのですが。

Aベストアンサー

Ctrlキーを押しながらドラッグしてください。

QEXCEL csv形式 1-2-3のデータが勝手に2001/2/3になる

csv形式で保存しているデータをエクセルで読み込むと、
1-2-3→2001/2/3
になってしまいます。

WEB処理でダウンロードさせて、WINDOWSの関連つけで自動的に開かせているのです。
全角「1-2-3」と入力しても同じでした。
ダブルコーテーションでくくってもだめ。

あきらめるしかありませんか?
マクロを使うつもりはありません。
データに余計なものを付加するのもだめです。
EXCELの機能を調整するのはありです。

よろしくお願いします。

Aベストアンサー

メモ帳で
12,'1-2-3
25,1-2-3
をつくり
エクセルに読み込ましたら
12'1-2-3
252001/2/3
になりました。
エクセルの数字の中のーが日付に合うとき日付化する機能は最優先的に強いので、アポストロフィで文字列をアピールするよりほか無いのでは。
ーー
関連付けで・・と書いてあるので、下記が出来るかどうかわからないが
エクセルのメニューの、データー外部データの取り込みーファイル指定ーカンマでフィールドを分割後
'1-2-3
1-2-3
の列をクリックして(列が黒くなる)、上部に「文字列」の目玉をON(すなわち文字列書式を指定)にしてOKで読み込ませると
12'1-2-3
251-2-3
になりましたよ。これは使えないですか。
ーーー
>マクロを使うつもりはありません。
データに余計なものを付加するのもだめです。
回答者は試験を受けているのではないので、勝手なことを書かれると
・・・。

Qエクセル>セルの書式設定>平成**年**月**日

エクセル>セルの書式設定>
にて
平成18年6月1日

平成18年06月01日
のような表示にするには?

Aベストアンサー

訂正
 
 
gggyy"年"mm"月"dd"日"

QEXCEL: 日付のセルに1/2/3と入れると、2001/2/3と解釈されるが、2003/1/2と解釈させるには?

タイトルのとおりです。アメリカでは、1/2/3と書くと普通は2003年1月2日と解釈されます。
EXCELにて、 日付のセルに1/2/3と入れると、2001/2/3と解釈されますが、表示形式は2/3/01と指定できるにもかかわらず、入力形式は年/月/日と固定されていますよね。これは何とかならないでしょうか?
入力→解釈→表示が全て「月/日/年」と一貫していると、いちいち翻訳せずに済むのですが・・・。

Aベストアンサー

コントロールパネルの「地域と言語のオプション」で設定できます。

【手順(WinXPの場合)】
1.[スタートメニュー]-[設定]-[コントロールパネル]を選択
2.コントロールパネルの「地域と言語のオプション」を開く
3.「地域オプション」タブの「標準と形式」で「英語(米国)」を選択
4.[適用]ボタンを押す
5.[OK]ボタンで画面を閉じる
⇒Excelで「1/2/3」と入力すると「2003/1/2」と認識される

※Windows全体が手順3で選択した表示形式に変わります。


人気Q&Aランキング

おすすめ情報