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

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

A 回答 (2件)

#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は、実際の場合の値に
変えてください。
元データのシートはコピーを取って、テストをしてください。編集の元に戻すが効かないと思いますから。
    • good
    • 0

エクセルでの方法は大別して


(1)操作で
(2)関数で
(3)書式設定・条件付書式・入力規則で
(4)備わったウイザード的操作(フィルタなど)
(5)VBAで
などに分かれると思います。
本件では(1)は面倒(3)(4)は該当せず対象外でしょう。
すると(2)での解決をお望みでしょうが
関数と言うものは、行挿入や削除や文字・セルの色づけは出来ません。値を対象にするものです。規則性があれば別シートのしかるべき行にデータを持ってきて、新表を作成できるケースはあります。
結局残るはVBAですが、お望みですか。

この回答への補足

是非ともお願いします。VBAも今勉強中です。

補足日時:2003/10/07 23:42
    • good
    • 0
この回答へのお礼

お返事が遅くなりました。できました。欲を言えば、B列からE列まで一度に挿入するってときはB:Eってやったらできなかったのですが、何か方法はないですか?

お礼日時:2003/10/14 09:34

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

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

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

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

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

Q行を様や御中に訂正する時、二重線で消すのでなく、書き加えるのは、ありですか?それともマナー違反ですか?

 このテーマの以前のQ&Aに目を通したのですが、「行は二重線で消して」という回答が多かったようです。
 私は長いこと、「行」に書き加えて「御」にして良いものと思っていました。以前の回答の中で、下記のような書き込みがあったのでたいへん心強く思ったのですが、このこと自体をテーマにした回答ではなかったのでちょっと心配です。
どうなんでしょうか?
 >「行」のぎょうにんべんと「御中」の「御」のぎょうにんべんが
 同じなので、ぎょうにんべんはそのままで、「行」のつくりの
 「テ」の部分をちょっと書き加えて「卸」にするんです。

Aベストアンサー

有り得ない事です。
もしも そのような郵便物が届いたら 事務所全員で大笑いのネタにするほどの有り得ない話しです。
採用関係の書類だとか、営業の書類だったらそれだけで不採用 契約なし が確定するほどの非常識な事です。
小さいとは言え 私も経営者の端くれです。
もしも、我が社の事務員がそのような事をしたら、即日懲戒解雇を言い渡します。

Q作業列なしで各行のA列とB列の数値の小さい方に、C列の数値をかけた値の和を求めたい

エクセルで、A列B列C列の1行目から100行目まで、それぞれ数値が入っているとします。
各行のA列とB列の数値の小さい方に、C列の数値をかけた値の和を求めたいです。
D列を作業列にするなら、D1に「=MIN(A1,B1)*C1」として、これをD100までコピーして、「=SUM(D1:D100)」で得られる数値を求めたいのですが、元となるデータが頻繁に追加されることも有り、作業列の追加が難しい状況です。
SUMPRODUCT関数を使おうにも、「=SUMPRODUCT(MIN(A1:A100,B1:B100),C1:C100)」では、A1からB100までの200セルのうちの最小値に、C1からC100の数値をそれぞれかけた値の和が返されてしまいます。
なにかよい方法があれば、お知恵を拝借できないでしょうか。

Aベストアンサー

こんにちは!

範囲を最初から多目にしておいてはダメですか?
SUMPRODUCT関数はどこかの列が空白の場合は「0」とみなされ合計しても結果に変化はないはずですので・・・

どうしても作業列を使用したくない場合の一例です。
表示したいセルに
=SUMPRODUCT(IF(A1:A1000<=B1:B1000,A1:A1000,B1:B1000),C1:C1000)

配列数式になりますので、Ctrl+Shift+Enterで確定!
この画面からコピー&ペーストする場合は上記数式をドラッグ&コピー! → 表示したいセルを選択 → 数式バー内に貼り付け  → そのまま(編集可能なまま)
Ctrl+Shiftキーを押しながらEnterキーで確定します。
数式の前後に{ }マークが入り配列数式になります。

※ SUMPRODUCT関数自体が配列数式になりますが、
配列数式内に配列数式を入れた感じになります。m(_ _)m

Q注文請書の「行」から「御中」への訂正方法を教えてください

注文請書を返送したいのですが、宛名に「取引先名称 行」と
印字されている為、「取引先名称 御中」に訂正したいのですが
訂正印は必要でしょうか?
二重線を引いて御中になおす方法でよいものか悩んでいます。
ご回答、よろしくお願いします。

Aベストアンサー

>二重線を引いて御中になおす方法でよいものか悩んでいます


これでOKです。訂正印は不要です。

QA列とB列の合計を行ごとにC列に表示させたい

お早うございます。エクセルのセルの計算で教えてほしいのですが、A列とB列の合計を行ごとにC列に表示させたいのです。例えばA1のセルに“1", B1のセルに“2"と入れます。それで、C1のセルに“=A1+B1"と入力します。そうするとC1のセルは“3”と表示されますよね。そこで同じように違った数字の合計を100行ほどそれぞれC列に表示させたいのです。セルごとではなく縦全部列ごとでもかまいません。宜しくお願いします。

Aベストアンサー

A1+B1=C1
A2+B2=C2

というふうにしたい!ということですね.

でしたら,
C1にはA1+B1というルールができているので,
A2,A3,A4…とB1,B2,B3…と二つの場所にそれぞれ数字を入れておきます.
その後,C1セルを選択し,そのセル自体の右下の方(選択して太線で囲まれている□自体の右下ですよ!)にカーソルを持って行くと
カーソルが太い「+」のように変わります.
そこで押したまま下に(C2,C3と下の方向です)ずーっと下げてください.
するとその部分の計算が自動的に行われるはずですよ!

日本語が下手でうまく伝わるかわかりませんが,
わかりにくかったらまたきいてください♪

Q返信用封筒の「行」を訂正

就活生です。
内定貰った企業から、内定承諾書を送るための返信用封筒が届きました。
返信用封筒には企業名、部署名がゴム印で押されていて、「行」が手書きで書かれています。
この場合、手書きで書かれた「行」という漢字は訂正して良いのでしょうか?

わざわざ手書きで書かれているので、それを私が二重線で消すのが失礼に感じています。
この手書きの「行」は二重線で消して良いのでしょうか。

また二重線で消して良い場合、「様」にするべきなのか「御中」にするべきなのかも迷っています。

尚、担当者の名前は書かれていません。

ご教示お願いします。

Aベストアンサー

採用担当です。
二重線で消して頂いて結構です。

>返信用封筒には企業名、部署名が
>ゴム印で押されていて、
>「行」が手書きで書かれています。

郵便を出す時用に企業名・部署名の
ゴム印は作っていても、
返信用封筒を作る頻度は低いので「行」のゴム印は作っていないのでしょう。

>わざわざ手書きで書かれているので、

若手担当者か事務の女性が手書きしたものと思われます。

>それを私が二重線で消すのが失礼に感じています。
>この手書きの「行」は二重線で消して良いのでしょうか。

消してよいです。

>また二重線で消して良い場合、
>「様」にするべきなのか
>「御中」にするべきなのかも迷っています。

部署宛なので「御中」にして下さい。

よろしくお願いします。

QEXCELマクロの列挿入で余分に列が挿入されてしまいます。

EXCELで5セルづつ結合された表があり、決まった列数ごとに2列挿入して合計欄を作りたいのですが、手
動で2列選択してツールバーより挿入とすると2列のみ挿入されますが、マクロで2列選択して挿入se
lection.insertをするとなぜか連結セル分5列選択し挿入されてしまうのですが、2列のみ挿入するには
どうしたらいいのでしょうか。
For i = 72 To t Step 72
Sheets("描画表").Select
'Column(列)変換
y2 = IIf(y > 26, Chr(y \ 26 + &H40), "") & Chr(y Mod 26 + &H41)
y3 = IIf((y + 1) > 26, Chr((y + 1) \ 26 + &H40), "") & Chr((y + 1) Mod 26 + &H41)
Columns("" & y2 & ":" & y3 & "").Select
Selection.Insert Shift:=xlToRight

ローカルウィンドウでマクロのステップをチェックするとy2、y3ともちゃんと列番号が入っているように思うのですがよろしくおねがいします

EXCELで5セルづつ結合された表があり、決まった列数ごとに2列挿入して合計欄を作りたいのですが、手
動で2列選択してツールバーより挿入とすると2列のみ挿入されますが、マクロで2列選択して挿入se
lection.insertをするとなぜか連結セル分5列選択し挿入されてしまうのですが、2列のみ挿入するには
どうしたらいいのでしょうか。
For i = 72 To t Step 72
Sheets("描画表").Select
'Column(列)変換
y2 = IIf(y > 26, Chr(y \ 26 + &H40), "") & Chr(y Mod 26 + &H41)
...続きを読む

Aベストアンサー

ちょっと問題が理解しにくいです・・・・

yが、ソース中で定義されていないので、分かりにくいのですが、yを左のセルから動かしていませんか?
それでしたら右のセルから動かしたら、うまくいくでしょう。
For y = 最終目的列 To 開始目的列 Step -72
のように。

あと列を文字列に変換するの必要だと思えません。
x列目で2列挿入するなら
Range(Columns(x), Columns(x + 1)).Insert Shift:=xlToRight
でいいと思います。

Q私の英語は合っていますか?間違えていたら訂正していただけますか? 昨日父のお見舞いに行った後、仕事に

私の英語は合っていますか?間違えていたら訂正していただけますか?


昨日父のお見舞いに行った後、仕事に行きました。昨日は彼のの誕生日でした。
I visited my dad in hospital. after that, I went to work yesterday.

昨日は彼のの誕生日でした。
Yesterday was his birthday.

Aベストアンサー

>昨日父のお見舞いに行った後、仕事に行きました。
After visiting my father at the hospital, I left to go to work yesterday.
「昨日は、病院の父を見舞った後、仕事にいきました」

>昨日は彼の誕生日でした。
Because yesterday was his birthday.
「だって昨日は彼の誕生日でしたから」

1. お父様のいる病院は一つしかないので、冠詞のtheが必要です。
2.場所としての病院なので、atでOK
3.二つの文章をつなげるには二番名の文章をBecauseからはじめた方がなめらかです。

Q例えば、AさんからGさんまでがA列に縦に並んでいてB列に数字が入っています。B列にある数字の合計をA

例えば、AさんからGさんまでがA列に縦に並んでいてB列に数字が入っています。B列にある数字の合計をA-Gさん別々に出したいんですが簡単なvbaの記述方法はないでしょうか?
お願いします。

Aベストアンサー

こんばんは!

A列のA~Gさんは複数存在しているのでしょうか?
そうであればSUMIF関数で対応できると思いますが、VBAをお望みだというコトですので
一例です。

元データはSheet1にあり、Sheet2に表示するとします。
尚、Sheet1の1行目は項目行でデータは2行目以降にあるという前提です。
標準モジュールにしてください。

Sub Sample1()
Dim lastRow As Long, wS As Worksheet
Set wS = Worksheets("Sheet2")
wS.Cells.ClearContents
With Worksheets("Sheet1")
.Range("A:A").AdvancedFilter Action:=xlFilterCopy, copytorange:=wS.Range("A1"), unique:=True
lastRow = wS.Cells(Rows.Count, "A").End(xlUp).Row
With Range(wS.Cells(2, "B"), wS.Cells(lastRow, "B"))
.Formula = "=SUMIF(Sheet1!A:A,A2,Sheet1!B:B)"
.Value = .Value
End With
End With
End Sub

こんな感じではどうでしょうか?m(_ _)m

こんばんは!

A列のA~Gさんは複数存在しているのでしょうか?
そうであればSUMIF関数で対応できると思いますが、VBAをお望みだというコトですので
一例です。

元データはSheet1にあり、Sheet2に表示するとします。
尚、Sheet1の1行目は項目行でデータは2行目以降にあるという前提です。
標準モジュールにしてください。

Sub Sample1()
Dim lastRow As Long, wS As Worksheet
Set wS = Worksheets("Sheet2")
wS.Cells.ClearContents
With Worksheets("Sheet1")
.Range("A:A...続きを読む

Q行→御中に直すときの訂正線は

内定がきまり、内定の確約書のようなものを提出することになりました。

マナーでは封筒に印字された「~部 行き」に訂正線を引いて「御中」になおさなければならないはずなのですが、知り合いに聞いたところ、訂正線は斜めに引くのが正しい。というひとと、いや、横だ。という人がいて、どちらが正しいのか判断できません。

どのように引くのが正しい方法ですか?
ちなみに封筒に印字された宛名は横書きです。

おしえてくださるとうれしいです。

Aベストアンサー

どちらが正式かは分かりませんが、横書きなら横2本線が多いです。
うちの会社に来る物はほとんどこれですし、私自身もこうしていますが。

Q列×列を列ごとに示したいです。

エクセル表計算についての質問です。困っているのでよろしくお願いいたします。

A B C

1 1 2
2 3 4
3 5 6
4 7 8

A×Bの結果をCに示したいんですがどうすればよいでしょうか??(c1に1×2=2,c2に3×4=12、c3に30、C4に56・・・と言う感じです。)

Aベストアンサー

C1のセルに、=A1*B1と入力したあと、セルの罫線部分の右下にポイントを当てて(表示が変わる部分)、下に向かってドラッグすればOKです。


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

人気Q&Aランキング

おすすめ情報