エクセルの初歩的な事だと思うのですが...

1040件のデーターが有り、

4行おきに、3行の空欄を挿入したいんですがさっぱり分かりません???

一度に出来る方法があれば、詳しく教えて下さい!

よろしくお願いします。

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

A 回答 (2件)

オフィース95でもできるように基本的なものだけで作成してあります。


ワークシート名はツールのマクロの実行を使えば必要無いですが、
お使いのワークシート名にあわせてお使いください。

a = 1040 + 4
b = a Mod 4
last = a + (b * 3)
counter = 1
While counter < last
counter = counter + 4
While counter2 < 3
Worksheets("Sheet1").Cells(counter, 1).Insert Shift:=xlDown
counter2 = counter2 + 1
counter = counter + 1
Wend
counter2 = 0
Wend

この回答への補足

マクロ自体が、よく分かっていないので面倒なんですが
やり方を順に教えていただけませんでしょうか?

補足日時:2001/03/06 11:26
    • good
    • 0
この回答へのお礼

なんとかやってみます。ありがとうございました。

お礼日時:2001/03/06 14:41

コードを書いてみました。

参考にして下さい。
(1)VBA画面で標準モジュールを挿入します。
(2)下のコードを貼り付けます。
(3)データ入力されたシートに戻って、データの1件目(左端がいい?)を選択して、メニューのツール→マクロ→マクロからGyoSonyuを実行します。

データがある間、選択セルを下に7(4+3)行下げながら行挿入しています。
データが連続に入力(未入力がない)された列を選択することが条件です。普通、一番左の列は有りますが。

Public Sub GyoSonyu()
Dim rg As Range 'セル
Dim ct As Integer 'カウンタ
Set rg = ActiveCell
ct = 4 '初期値
While rg.Offset(ct, 0) <> "" 'データが無くなるまで繰り返す
rg.Offset(ct, 0).Select '挿入する箇所を決める
Selection.EntireRow.Insert '行挿入
Selection.EntireRow.Insert '行挿入
Selection.EntireRow.Insert '行挿入
ct = ct + 7 'カウンタを進める(3行挿入したから行位置は+7)
Wend
End Sub
    • good
    • 0

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

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

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

Qテーブルリンク エクセルの4行目を先頭行にしたい

エクセルのデータをアクセスにテーブルリンクしたいのですが
エクセルの先頭行が4行目から始まります。
なおかつA1に文字が入ります。
(画像参照)

このエクセルデータをアクセスの
「テーブルのリンク」→ファイルを選ぶ
→ワークシートリンクウィザードが表示され、次のページに進み、
「先頭行をフィールド名として使う」にチェックを入れたいのですが、先頭行は4行目です。

この場合、どうすればエクセルの4行目を
アクセスのテーブルリンクの先頭行にできるのでしょうか?

エクセルのA1の文字を消去すれば自動的に4行目がアクセスで先頭行になりますが
エクセルの方は決まったフォーマットなのでA1の文字を消去することはできません。

ご回答よろしくお願いします。

Aベストアンサー

#1です

Excel ファイル側に手を入れられるのなら、#2さんの方がお勧めです。

なお、範囲名部分が行方向に増えるのなら、(Excel側で範囲を再設定)
何もせずに Access 側から変更を含めて値を得ることが出来るようですが、
列方向に範囲が広がった場合、 リンクの更新(RefreshLink)が必要みたいです。

嘘を言ってるかも知れないので、裏取りはしっかりとしてください。

QExcel2013 関数によりセルを7行こど空欄のあるデーターに変えたい

例えばG1とG2で共通のデーター、G3とG4で共通のデーターがあるとして、D列にこのデーターをD1とD2にG1とG2のデーターに始まり、行空けてG3とG4のデーターをD7とD8にと連続して表示させたい(6行空けることになりますか)。例えばのデーターは実際は同じものがG60まであります。また、G1~のデーターを作成して完成したら、これをすべて、一気に上記のようにできればと考えています。その時の関数をお教え頂きたいのですが、よろしくお願いします。

Aベストアンサー

こんばんは!

>6行空けることになりますか
ではなく、4行あけるという解釈です。
無理やり行合わせしてみました。

D1セルに
=IF(MOD(ROW(A6),6)<2,INDEX(G:G,INT((ROW(A1)-1)/6)+INT(ROW(A1)/6)+MOD(ROW(A1),3)),"")
という数式を入れフィルハンドルでずぃ~~~!っと下へコピーしてみてください。

※ もっと簡単な方法があるかもしれませんが、
とりあえずはこの程度で・・・m(_ _)m

Qエクセルで、条件を指定した行数のカウントについて

エクセルにて、条件に合致する行数のカウントを行うことは出来ますでしょうか。

添付画像のようなエクセルファイルにて、各日毎に「AAA」を含む行は何行あり、「BBB」を含む行は何行あるかをカウントしたいです。

添付のエクセルであれば、A列が「10月1日」でB列に「AAA」を含む行は○行という条件でカントが出来れば実現可能とは思いますが、
こういったカウントの仕方がそもそもエクセルで出来るのかどうか知りたいです。

もし、エクセル以外の方法で可能なのであれば、その方法も教えていただけるとありがたいです。

Aベストアンサー

SUMPRODUCT関数などを使った場合にはデータ数が多くなった場合には計算が重くなります。
作業列を使った方法がよいでしょう。
お示しのデータがシート1に有るとしてC列を作業列としてC2セルには次の式を入力して下方にオートフィルドラッグします。

=IF(A1="","",IF(COUNTIF(B1,"AAA*"),A1&"AAA",IF(COUNTIF(B1,"BBB*"),A1&"BBB","")))

次にお望みの表を別のシートに表示させるとしたら別のpシートのB1セルにはAAAと入力しC1セルにはBBBと入力します。
A2セルから下方には例えば10月1日からの日付を入力します。
B2セルには次の式を入力してC2セルまでオートフィルドラッグしたのちに下方にもオートフィルドラッグします。

=IF($A2="","",COUNTIF(Sheet1!$C:$C,$A2&B$1))

Qエクセル マクロ 1行おきのデータを4行おきに転記する。

こんにちは、エクセル2010を使っています。

先頭のSB1に記入された文字列の数式が長いので少し見づらいのですが、
SB1~SI5000に8列に渡ってデータがあります。

そのデータを1行ずつ、違う場所に4行おきに転記したいと思います。
SB1~SI1 ⇒ MN50000~MU50000
SB2~SI2 ⇒ MN50004~MU50004
        ↓
データが存在する限り繰り返し。
と言う具合です。

ちなみに元データは文字列で、文字列の数式を貼り付けた時は、そのセルをアクティブにしてENTERを押さないと機能しなかったように思います。

ですので、張り付けた後にENTERを押すような処理をするか、もしくはその文字列の数式を機能するように貼り付けたいです。

詳しいかた、教えて頂けませんでしょうか。

※ 上記とは別の場所にも転記すべき場所がありますので、セル番地を見て変更可能な方法だと更に嬉しいです。

お手数ですが、よろしくお願いいたします。

Aベストアンサー

こんなのどうでしょう。


元に戻せませんので必ずバックアップを取ったうえでお試しください。
'---------------------------------------------------------------------
Sub Tenki()
Dim r As Long, p As Long

p = 50000
r = 1
Do While Cells(r, "SB").Value <> ""
Range(Cells(r, "SB"), Cells(r, "SI")).Copy
Cells(p, "MN").PasteSpecial Paste:=xlPasteValues
p = p + 4
r = r + 1
Loop
MsgBox "End."
End Sub
'---------------------------------------------------------------------

Qテキストファイルから必要な項目(行)をエクセルの行に移行させるには

テキストファイルから必要な項目(行)をエクセルの行に移行させる簡単な方法を教えて下さい。
1テキスト=エクセルの1行

Aベストアンサー

コピーアンドペーストでうまくいく気がします。
テキストファイルを、ノートパッドなどで開いて、全文をコピーし、エクセルに貼り付けるだけです。エクセルは、左上端のセル一つだけが選択された状態にしておきます。複数のセルを選択しているとサイズが合わないと文句を言われるかもしれません。

Q膨大なデータ一行おきに二行分のコピーしたセルを挿入

エクセルが苦手で困っています。
エクセル、マクロに詳しい方教えて下さい。
10000件ある住所の一覧データに1行おきにコピーした2行分のセルを挿入したいのですが、
10000件を1件づつコピーしたセルの挿入を繰り返すのは気が遠くなりそうです。
一気にコピーした2行分のセルを1件おきに挿入する良い方法はありませんでしょうか?
マクロやエクセルでの方法を教えて下さい!

【例】
番号郵便番号住所名前
1123-4567○○県○○市○○町春本 春子
2111-1111△△県△△市△町      夏野 夏美
3222-2222□□県□□市□□町秋田 秋夫
4333-3333××県××市××町冬川 冬彦
〃       〃               〃              〃
〃       〃               〃              〃
10000  〃               〃              〃



番号郵便番号住所名前
1123-4567○○県○○市○○町春本 春子
201350002505250
010170003507350
2111-1111△△県△△市△町夏野 夏美
201350002505250
010170003507350
3222-2222□□県□□市□□町秋田 秋夫
201350002505250
010170003507350
4333-3333××県××市××町冬川 冬彦
201350002505250
010170003507350
5 〃〃〃
2013010150002505250
010170003507350
10000   〃〃〃
2013010150002505250
010170003507350

10000件分コピーして挿入する内容は同じです。
ただ、コピーしたセルの1行目と2行目の並びは変えたくありません。

わかりづらい説明かもしれませんが、宜しくお願いします。

エクセルが苦手で困っています。
エクセル、マクロに詳しい方教えて下さい。
10000件ある住所の一覧データに1行おきにコピーした2行分のセルを挿入したいのですが、
10000件を1件づつコピーしたセルの挿入を繰り返すのは気が遠くなりそうです。
一気にコピーした2行分のセルを1件おきに挿入する良い方法はありませんでしょうか?
マクロやエクセルでの方法を教えて下さい!

【例】
番号郵便番号住所名前
1123-4567○○県○○市○○町春本 春子
2111-1111△△県△△市△町      夏野 夏美
3222-2222□□県□□市□□町...続きを読む

Aベストアンサー

No.2・3です。
補足を何度読み返してもまだ、理解できていません。

>A列1行目「通し番号」2行目(コピー挿入したい)「年月」3行目(コピー挿入したい)「101」
>B列1行目「郵便番号」2行目(コピー挿入したい)「金額」3行目(コピー挿入したい)「金額」
>C列1行目「住所」2行目(コピー挿入したい)「消費税」3行目(コピー挿入したい)「消費税」
>D列1行目「名前」2行目(コピー挿入したい)「合計金額」3行目(コピー挿入したい)「合計金額」

と質問文にある、挿入後のデータはすべて同じ!を考えると
↓の画像のような感じになってしまいますが・・・
(これでは意味がないように思えますが、敢えてコードを載せてみます)

※ For~Nextでループさせるとデータ量が多い場合おそらく「応答なし」となると思いますので、
極力、Excelの機能を使ってやっています。
(並び替え・オートフィルタ等)
Sub 行挿入3() 'この行から
Dim endRow As Long, cnt As Long, myArray
endRow = Cells(Rows.Count, "A").End(xlUp).Row
Application.ScreenUpdating = False
Range("A:A").Insert
With Range(Cells(2, "A"), Cells(endRow, "A"))
.Formula = "=row()"
.Value = .Value
.Copy
End With
Do Until cnt = 2
cnt = cnt + 1
Cells(Rows.Count, "A").End(xlUp).Offset(1).PasteSpecial Paste:=xlPasteValues
Loop
Range("A1").CurrentRegion.Sort key1:=Range("A1"), order1:=xlAscending, Header:=xlYes
endRow = Cells(Rows.Count, "A").End(xlUp).Row
With Range(Cells(2, "A"), Cells(endRow, "A"))
.Formula = "=IF(B2="""",IF(B1<>"""",1,2),"""")"
.Value = .Value
End With
With Range("A1")
.AutoFilter field:=1, Criteria1:=1
For cnt = 2 To 5
Range(Cells(2, cnt), Cells(endRow, cnt)).SpecialCells(xlCellTypeVisible) = Cells(1, cnt)
Next cnt
.AutoFilter field:=1, Criteria1:=2
myArray = Array("101", "金額", "消費税", "合計金額")
For cnt = 2 To 5
Range(Cells(2, cnt), Cells(endRow, cnt)).SpecialCells(xlCellTypeVisible) = myArray(cnt - 2)
Next cnt
End With
Range("A:A").Delete
ActiveSheet.AutoFilterMode = False
Application.ScreenUpdating = True
MsgBox "処理完了"
End Sub 'この行まで

※ データ量が10000程度だというコトですので、
そこそこ時間を要すると思います。m(_ _)m

No.2・3です。
補足を何度読み返してもまだ、理解できていません。

>A列1行目「通し番号」2行目(コピー挿入したい)「年月」3行目(コピー挿入したい)「101」
>B列1行目「郵便番号」2行目(コピー挿入したい)「金額」3行目(コピー挿入したい)「金額」
>C列1行目「住所」2行目(コピー挿入したい)「消費税」3行目(コピー挿入したい)「消費税」
>D列1行目「名前」2行目(コピー挿入したい)「合計金額」3行目(コピー挿入したい)「合計金額」

と質問文にある、挿入後のデータはすべ...続きを読む

Qエクセルの行の幅について

 エクセルの行幅を立ち上げ時点から太くしたいと思います。
 エクセルの行の幅は、立ち上げると12.75という高さになっているようです。しかし、これでは少々見づらいので15くらいにしたいと思います。
 もちろん、「行の高さ」で変更できるのは分かるのですが、毎回、修正するのが煩雑です。従って、立ち上げた初期段階から行の高さを変更することはできないでしょうか。

Aベストアンサー

う~ん。

確か、エクセルの初期設定で変更できるのは、
「シート数」「フォントの書体」「フォントの大きさ」
くらいだったと思います。
行の幅を、立ち上げ時から指定の幅にする事は出来なかったような…。

私自身、エクセルを結構利用するのですが、行の幅を変更するときは、
「全選択(画面左上の行(1)の上、と列(A)の左、の長方形の部分をクリック)」して、
行(1)と、行(2)の間にある線をドラッグして一気に全ての行の幅を変えています。

もし、それすらも煩雑と感じるほどにエクセルを新規で立ち上げているのであれば、
以下の方法はどうでしょうか?

1.行の幅を15に設定した「白紙のエクセル」をデスクトップに保存する。
2.新規で利用したい場合は、1で保存したエクセルをデスクトップ上でコピー(Ctrl + C)&ペースト(Ctrl + V)
3.ペーストしたエクセル(白紙で行幅15)を立ち上げる。

こうすれば、毎回行幅を変更する事なく、立ち上げ時から行幅15のエクセルが使用できますよ♪

ただ、全選択して一気に行幅を変える前者のやり方の方が簡単な気もしますが…。(汗

う~ん。

確か、エクセルの初期設定で変更できるのは、
「シート数」「フォントの書体」「フォントの大きさ」
くらいだったと思います。
行の幅を、立ち上げ時から指定の幅にする事は出来なかったような…。

私自身、エクセルを結構利用するのですが、行の幅を変更するときは、
「全選択(画面左上の行(1)の上、と列(A)の左、の長方形の部分をクリック)」して、
行(1)と、行(2)の間にある線をドラッグして一気に全ての行の幅を変えています。

もし、それすらも煩雑と感じるほどにエクセルを新規で立...続きを読む

QVBA DO LOOP Do loopをつかって行を空欄まで見に行き、ある条件の時は行を削除します。

VBA DO LOOP

Do loopをつかって行を空欄まで見に行き、ある条件の時は行を削除します。ただdo loopでさくじょすると行が動くので(四行目を削除すると五行目が四行目になり、四行目が条件対象であっても四行目はループしているため、プログラムが見に行かない。)うまくいきません。何か他の方法でうまくいきませんか?

Aベストアンサー

No.2さんと同じ考えかたです。
A列をA1から見ていって、1の行を削除します。

Sub Sample()
  Dim row As Long
  
  row = 1
  Do While Cells(row, 1).Value <> ""
    If Cells(row, 1).Value = 1 Then
      Cells(row, 1).EntireRow.Delete
      row = row - 1
    End If
    row = row + 1
  Loop
End Sub

Qエクセルの行の幅がずれる

エクセルで表を作っているのですが
行の高さを25にして確かめてみると
どうしても24.5というように25の幅になっていません。
どうすればきっちり自分の設定した行の高さになるのでしょうか教えてください。
エクセルは2000を使っています。

Aベストアンサー

セルの高さの単位はなんでしょう?
ポイントという単位なのですが、1ポイントは約0.35mmでポイントは文字の大きさの単位と同じです。エクセルでは11ポイントの場合標準の高さが13.5、14ポイントでは17.5と変化します。
エクセルの標準フォントの高さを基準にしています。(これはオプションで変更できます。)

ピクセルと言う基準があって、これをポイントと言う単位に直しているので、25と言う端数のない数値にならない事がある。

例えば、幅はどうでしょう、これは標準フォントの文字数を表しています。(規定があるのですが省略)

と言う事で、出来ません。
25の右にあるピクセルと言う単位を基本に使うようにしたらいかがでしょう。
例えば列幅とも100ピクセルを選択するとセルは正方形になります。(ピクセルは列幅とも同じ物です。)
この併記はエクセル2000から始まったようですが。(単位が違うので、合わせるためみたいです。)

Qエクセルで複数行に一度に改ページを挿入する方法

エクセルで2行ごとに、一気に改ページを挿入する方法があればおしえてください。
全部で50の改ページを挿入しなければならないので、いちいち挿入する行を選択して改ページを入れるのは面倒で。
マクロも考えていますが、マクロ以外で方法はないでしょうか?
ためしに、複数行選択して、改ページを挿入してみたら、最後の選択行にしか改ページが入っていませんでした。
2行ごとという規則性があるので、何か方法がありそうですが…。
よろしくお願いします。

Aベストアンサー

用紙と余白設定で2行以上書き込めないようにすれば、あとは下にコピーするだけです。


人気Q&Aランキング

おすすめ情報