新規無料会員登録で1000名様に電子コミック1000円分が当たる!!

タイトルの通りです。
エクセル(2000)で、データはシート毎に件数が違います。
各シート毎にそれぞれ1行毎、空白行を挿入し、挿入した空白行のA列~G列までに薄いグレーの色をつけるマクロを入れたいのですが、うまくいきません。
詳しい方、教えて下さい。

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

A 回答 (3件)

簡易に実現するには条件付き書式はいかがでしょうか?



空白行が偶数行だと仮定します。
データ範囲はA5のセルからだとしておきます。

データ範囲を選択して、メニューバーから書式>条件付き書式を選びます。
条件を「セルの値が」から「数式が」に変更し、
条件欄に

=MOD(ROW(A5),2)=0

とします。
空白行に選択したい書式を書式ボタンで選択した後で設定します。

これで1行おきに偶数行に選択した書式を入れることが可能です。
    • good
    • 0

手動でやるなら、



1. データ範囲の一番左側に作業列を挿入
2. データ開始行から終了行まで、オートフィルで連番挿入
  このときセルの選択状態を解除しないまま、[Ctrl]+[C]でコピー
3. 2.でコピーした内容を2.の一番下にそのまま貼り付け
4. 3.で貼り付けた行のA~G列を着色
5. データ全体を作業列をキーにしての昇順ソート
6. 作業列を削除

でできます。


VBAならこんな感じ。


Sub Sample()

  Dim lngSRow As Long, lngERow As Long
  Dim CurrentRow As Long
  Dim i As Long

  'データ開始行
  lngSRow = 1

  'データ終了行取得(A列に空セル無しの場合)
  lngERow = Range("A65536").End(xlUp).Row
  '処理行
  CurrentRow = lngSRow
  '処理回数分ループ
  For i = lngSRow To lngERow
    With Rows(CurrentRow)
      '1行下に行挿入
      .Offset(1).Insert Shift:=xlDown
      '挿入した行全体とA:G列の交差範囲を薄いグレーで着色
      Intersect(.Offset(1), Range("A:G")).Interior.ColorIndex = 15
    End With
    '一行置きなので、次の処理行は前回処理行の2行下
    CurrentRow = CurrentRow + 2
  Next i

End Sub
    • good
    • 0

まず、どのようなマクロを作成したのか教えてください。

    • good
    • 0

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人が検索しているワード

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

Qエクセルの偶数行(奇数行)の抽出

エクセルにある数値列が入力されています。
この列の偶数行もしくは奇数行だけを抽出したいと考えていますが、どのような方法があるでしょうか?

Aベストアンサー

シートのA列に1から連番をつけて、B1に「=MOD(A1,2)」と入力。下にコピーして行くと、奇数=1
偶数=0になるので、表全体をその列でソート。きれいに偶数・奇数に分かれます。

QExcelで一行おきに2行の空白行を挿入したい

400行ほどデータの入ったエクセルシートがあります。
行番号 A列
 1  山田
 2  鈴木
 :   :
 400 田中
このシートで、一行おきに2行の空白行を追加したいのですが、
 1  山田
 2
 3
 4  鈴木
 5  
 6
 :  :

マウスで2行選択して右クリックメニューで挿入..を400行分やるのが大変なので
一気にやる方法を教えてください。

Aベストアンサー

こんにちは、マクロですが
Sub Test()
  Dim i As Long
  For i = Cells(Rows.Count, "A").End(xlUp).Row To 2 Step -1
    Rows(i).Resize(2).Insert
  Next
End Sub

Qエクセルの行挿入について

エクセルで、すでに300行ほどのデータが入っていますが、その1行1行にもう一行挿入しなければならないのです。F4キーを使ってする方法以外、一発で、挿入できる方法を教えてください。宜しくお願いします。

Aベストアンサー

こんにちは。

間に1行づつ挿入するって意味でしょうか?
下記マクロでA列にデータがある場合、偶数行に1行挿入します。

i Mod 2 <> 0 にすれば奇数行になるハズです。
i = 1 を変えれば開始行を変更出来ます。
.Range("A" & i) の "A" を変えれば データ列を変えられます。

必ずテスト環境で試して下さい。

Sub test()
Dim i As Long
 i = 1
 With ActiveSheet
  Do While .Range("A" & i) <> ""
   If i Mod 2 = 0 Then
     .Rows(i).Insert
   End If
   i = i + 1
  Loop
 End With
End Sub

Qエクセルで一列おきに空白列を入れたい

ABCDEF・・・
の表を

A B C D E F ・・・

のように一列空白の列を入れたいのですがどうすればいいのでしょうか。

Aベストアンサー

○列数が少ない場合、

B列を選択、Ctrlキーを押しながらC列を選択、Ctrlキーを押しながらD列を選択...として、右クリックで[挿入]

○列数が多い場合

たとえば、A1:Z5にデータが入っているとして、A列からZ列の間を一列ずつあけたい開けたい場合、以下の手順はいかがでしょう

1.あいている行(たとえば5行)にA列からZ列に1~26を入力
2.A5:Z26をコピーしてAA5:AY5にペースト
3.1:5を選択して、メニュー[データ]-[並べ替え]
4.[オプション]キーを押して[列単位]にチェックして[OK]
5.最優先されるキーを行5にして[OK]
6.5行目を選択して、deleteキー

参考URL:http://www2.odn.ne.jp/excel/waza/cell.html

Qエクセルで、2行おきに1行追加する方法

エクセルで、2行おきに1行追加する方法

行が2000行位あるデータについて、
1行毎では時間がかかるので、
他の方法(マクロでも作業列等)を教えて下さい。



行1 A
行2 B
行3 C
行4 D
行5 E
行6 F
行7 G
行8 H
   
上記2000行のデータを下記のように行追加をしたいのです。

行1 A
行2 B
行追加
行3 C
行4 D
行追加
行5 E
行6 F
行追加
行7 G
行8 H

よろしくお願い致します。

Aベストアンサー

たとえば2行おきの場合。

添付図:
隣列に,B1に数字の1,B2に数字の2を置いてB1:B2をオートフィルドラッグして連番を記入させます。
その下に,2行おきならまず2を記入,そして4を記入してオートフィルドラッグして2,4,6,8の数字を作ります。
AB列をB列昇順で並べ替えると出来上がりです。


n行置きの場合も同様に,B列下に継ぎ足す数字をnおきの数字に作って操作すれば出来ますね。
また,下に継ぎ足す数字の開始番号を調整すれば,どこから空を挿入するか微調整するのも容易です。

Qエクセル コピーしたデータを1行おきに貼り付け

エクセル2003を使っております。
コピーしたデータを1行おきに貼り付けたいのですがやり方がわかりません。あと、1つのセルに対して2行ごとに結合したいのですがどのようにすればいいのか。教えてください。よろしくお願いします。

Aベストアンサー

>1行おきに空白があるデータがありまして、それにコピーしたデータ
を貼り付けたいのです。
あいまいにならないように、実例を質問に挙げること。
例えば
コピー先 -は空白行を示す(1)は行番号
A列
(1)12
(2)ー
(3)15
(4)ー
(5)8
(6)ー
(7)5
ーー
(A)上記のーのセルに
(B)1回の操作で
貼り付けたいのだな。
ーー
ここへコピー元はどういうデータですか。
D2:D8に(-は空白セル)
a

b

c

d
なら
D2:D8をコピー
A2を選択
編集ー形式を選択して貼り付け
空白を無視する、にチェック
で貼り付け。
ーーー
結果
12
a
15
b
8
c
5
d
こんなことか?。質問の書き方をむしろ勉強してほしい。

Qエクセルで条件に一致したセルの隣のセルを取得したい

下のような「得点」という名前のシートがあります。
(「田中」のセルがA1です。)

 [ 田中 ][ 10 ][ 200 ]
 [ 山田 ][ 21 ][ 150 ]
 [ 佐藤 ][ 76 ][ 250 ]
 [ 鈴木 ][ 53 ][ 350 ]

別のシートのA1セルに、「佐藤」と入力すると、

 [ 佐藤 ]

「得点」シートから「佐藤」の列を見つけて、B1、C1に

 [ 佐藤 ][ 76 ][ 250 ]

のように表示させたいのですが、B1、C1にはどのような式を書けば良いのでしょうか。
「得点」シートでは氏名が重複する事はありません。
IF文を使うと思うのですが、いまいち良く分かりませんでした。

よろしくおねがい致します。

Aベストアンサー

こんにちは!
VLOOKUP関数で対応できます。
IF関数と併用すればエラー処理が可能です。

Excel2007以降のバージョンであれば
B1セルに
=IFERROR(VLOOKUP($A1,得点!$A:$C,COLUMN(B1),0),"")
としてC1セルまでオートフィルでコピー!
そのまま下へコピーすると行が2行目以降でも対応できます。

Excel2003までの場合は
=IF($A1="","",VLOOKUP($A1,得点!$A:$C,COLUMN(B1),0))

としてみてください、m(_ _)m

Q[エクセル] セルが空だったら一つ上のセルを自動入力する

こちらには困ったときにいつもお世話になっております。
今回もよろしくお願いいたします。

EXCEL2002にて、セルが空だったら一つ上のセルを自動入力するようにしたいのです。状況といたしましては、ある個人情報管理アプリケーションが、吐き出すCSVファイルがあります。それが、困ったことに一人の人に複数の情報がある場合、個人情報ナンバーを省略します。わかりずらいと思いますので、以下の表をご覧ください。

個人情報ID 電話番号
0001     01-2345-1111
0002     01-2345-2222
        01-2345-2223
0003     01-2345-3333
        01-2345-3334
        01-2345-3335
        01-2345-3336
0004     01-2345-4444

以上のような表になります。そこで、「0002」の下の空のセルにも0002。「0003」の下の3つの空のセルすべてに0003を自動的に入力できるようにしたいのです。各々コピーしていけば何とか埋まるのですが、データ量が多くかなり時間がかかってしまいます。

解決方法をご存知の方がいらっしゃいましたら、お力添えの程、よろしくお願いいたします。

こちらには困ったときにいつもお世話になっております。
今回もよろしくお願いいたします。

EXCEL2002にて、セルが空だったら一つ上のセルを自動入力するようにしたいのです。状況といたしましては、ある個人情報管理アプリケーションが、吐き出すCSVファイルがあります。それが、困ったことに一人の人に複数の情報がある場合、個人情報ナンバーを省略します。わかりずらいと思いますので、以下の表をご覧ください。

個人情報ID 電話番号
0001     01-2345-1111
0002     01-2345-2222
...続きを読む

Aベストアンサー

こんにちは

・A列の対象範囲を選択
・編集 ジャンプ セルの選択 「空白セル」にチェック
・数式バーに =An(注) と入力後
 [Ctrl]を押したまま[Enter] で入力確定

セル行(n) はアクティブセルの直上セル行値です
 対象セル(空白セル)が選択された状態で1箇所だけ
 反転していないセルがアクティブセルです。
例えば以下の場合
 A4がアクティブセルになっている筈なので =A3 と
 なります。

   A       B
1 個人情報ID 電話番号
2 0001     01-2345-1111
3 0002     01-2345-2222
4         01-2345-2223
5 0003     01-2345-3333
6         01-2345-3334
7         01-2345-3335
8         01-2345-3336
9 0004     01-2345-4444

Q特定の条件の時に行を挿入したい

EXCEL2000使っています。A列データがあるとして、A3セルに特定の数字(例えば1)があるときは、その上の行、このときは 2行に1行挿入したいのですが、各行ごとに挿入するのは大変なので、簡単に、できるだけ一度に挿入する方法はないですか?

Aベストアンサー

#1です。VBAで
Sub test01()
i = 1
p01:
If Cells(i, "A") = "" Then Exit Sub
If Cells(i, "A") = 1 Then
Cells(i, "A").Insert (xlDown)
i = i + 1
End If
i = i + 1
GoTo p01
End Sub
少数例テストでは上手く行きましたが。
データ行の中間に空白行がないこと。
If Cells(i, "A") = 1 Thenの1は、実際の場合の値に
変えてください。
元データのシートはコピーを取って、テストをしてください。編集の元に戻すが効かないと思いますから。

QエクセルのIF関数で、文字が入力されていたならば~

エクセルのIF関数で文字が入力されていたならば~、という論理式を組み立てたいと思っています。

=IF(A1="『どんな文字でも』","",+B1-C1)

A1セルに『どんな文字でも』入っていたならば、空白に。
文字が入っていなければB1セルからC1セルを引く、という状態です。

この『どんな文字でも』の部分に何を入れればいいのか教えてください。

またIF関数以外でも同様のことができれば構いません。

宜しくお願いします。

Aベストアンサー

=IF(ISTEXT(A1),"",B1-C1)

でどうでしょうか?


人気Q&Aランキング