例えば、A列は単価を入力する欄、B列には数量を入力する欄、C列には=A1*B1(1行目の場合)の計算式が入っている表があるとします。
表の途中で行挿入すると、自動的にCのセルに数式が入力される方法はありますでしょうか?
複数の人に毎月この表(実際はもっと列が多い表)に入力して貰って集計等をしているのですが、各個人で表の途中で行挿入して行を増やした際、数式がコピーされてない人がいるため、行挿入すると自動的に数式が入力される方法がないかと思っております。
エクセルのバージョンは2000又は2003、行挿入は必要なので、行挿入を禁止する事はできません。
宜しくお願いします。
No.3ベストアンサー
- 回答日時:
こんにちは。
Excel2003 ですと、その場所をリストに変更しておけば、自動的に数式は入ります。
Excelの2000の場合ですが、簡単に言えば、行の挿入のそれぞれのボタンにインスタンスを設ければよいわけですが、結構、これが複雑です。以下のようになります。(Excel2003でも可能です)
コマンドボタンにインスタンスを適用したので、他のブックにも影響します。出来れば、ブック単独でお使いになったほうがよいと思います。
ブックを開いた時に設定され、ブックを閉じた時に、解除されます。
単独で、起動する場合は、Auto_Open 、単独で解除する場合は、Auto_Close を実行すれば、行えます。
'----------------------------------------------------------
'以下Class1 モジュール
Private WithEvents myBtn As CommandBarButton
Public Property Set Btn(ByVal myNewBtn As CommandBarButton)
Set myBtn = myNewBtn
End Property
Private Sub myBtn_Click _
(ByVal Ctrl As Office.CommandBarButton, CancelDefault As Boolean)
Dim c As Range
If Selection.Columns.Count <> Columns.Count Then Exit Sub
CancelDefault = True
Application.ScreenUpdating = False
Selection.Copy
Selection.Insert Shift:=xlShiftDown
Selection.PasteSpecial xlFormulas
For Each c In Selection
If c.HasFormula = False Then
c.ClearContents
End If
Next c
Application.CutCopyMode = False
Selection.Cells(1).Select
Application.ScreenUpdating = True
End Sub
'===================================================
'以下標準モジュール
Private myClass1() As Class1
Sub RowInsertButtonEvent()
Dim myCtrl As CommandBarButton
Dim i As Long
On Error GoTo ErrHandler
For Each myCtrl In Application.CommandBars("Row").Controls
If myCtrl.Caption Like "挿入(&I)" Then
ReDim Preserve myClass1(i)
Set myClass1(i) = New Class1
Set myClass1(i).Btn = myCtrl
i = i + 1
End If
Next
For Each myCtrl In Application.CommandBars("Worksheet Menu Bar"). _
Controls(4).Controls
If myCtrl.Caption Like "行*" Then
ReDim Preserve myClass1(i)
Set myClass1(i) = New Class1
Set myClass1(i).Btn = myCtrl
i = i + 1
Exit For
End If
Next
ErrHandler:
If Err.Number > 0 Then
MsgBox "設定に失敗しました", vbCritical
End If
End Sub
'----------------------------------------------------------
Sub Auto_Open
'起動時に設定
Call RowInsertButtonEvent
End Sub
'----------------------------------------------------------
Sub Auto_Close
'終了時に設定解除
Erase myClass1()
End Sub
'----------------------------------------------------------
ご回答、真にありがとうございました。
Excel2003で「リスト」を試したら、出来ました!
悩みが一気に解決!感激&感謝です!
Excel2000でもこのような処理をしているので教えて頂いた方法でやりたいのですが、VBAは初心者のため、高度な記述はVBAをもっと勉強してから試してみたいと思います。
この度は本当にありがとうございました。
何とお礼を言ったら・・・という感じです。
ご親切に心より感謝申し上げます。
No.2
- 回答日時:
行を挿入したらでは無いですが、、、
入力者にとってその計算式は無くても影響がないものなのでしょうか?
であれば、保存時に式を埋めてしまうとか。
例えば、ThisWorkbookモジュールに
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
With Worksheets(1)
.Range("C1", .Range("A65536").End(xlUp).Offset(0, 2)).Formula = "=A1*B1"
End With
End Sub
とすると保存時にA列最終行を判断してC列に式を入れます。
ご回答、真にありがとうございます。
入力者は数式が無くても構いません(今でも行挿入しても計算式をコピーしないで提出してくるぐらいですし)。
教えて頂いた方法、例の状態で試した所、出来ました!
ただ、そうするとC1の項目名まで数式になってエラーが出てしまいましたが、表自体には数式がコピーされているので、私の作業には問題ないと思います。
実際作業しているシートでも試して見ます。
本当にありがとうございました。
No.1
- 回答日時:
質問者さんの理想な回答かどうかわかりませんが、
例えば、A列は単価を入力する欄、B列には数量を入力する欄、C列には=A1*B1(1行目の場合)の計算式が入っている表があるとします。
では、この例の場合で、3行目と4行目の間に2行目の行の式を行挿入をしたい場合を想定します。
2行目をアクティブにして、右クリック→コピー(C)
4行目をアクティブにして、右クリック→コピーしたセル(E)を挿入
これで、計算式の入った行を入れ込むことができると思います。ただし、2行目のA列、B列に値がある場合、その値も貼り付けられます。
早速のご回答、真にありがとうございます。
行挿入操作をする人の手順というよりは、「誰かが行挿入をしたら、自動的に同じ列の計算式が入力される表(ファイル)を作る方法があれば知りたい(エクセルの機能、マクロ、VBA等)と思っております。
質問の書き方が悪くて申し訳ありませんでした。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセル/列追加時、合計行の計算式 7 2023/03/15 11:14
- Excel(エクセル) エクセル テーブル機能の不明点 2 2022/04/14 14:10
- Excel(エクセル) エクセルでSUMIFS関数で条件範囲の部分が#valueになる。 4 2023/04/28 12:42
- Excel(エクセル) B列に、A列の数字が偶数の場合は1減算した数字、奇数の場合はそのまま数字を自動表示したい 4 2022/04/16 12:01
- Excel(エクセル) 特定文字(数字)で行挿入、挿入された行で合計したい 2 2023/03/13 14:30
- Excel(エクセル) 【再度】Excelの関数について教えてください。 4 2023/07/28 13:06
- Excel(エクセル) エクセルで最初に値が入っているセルを見つける方法はありますか? 2 2023/07/18 14:58
- Excel(エクセル) Excelの関数について教えてください。 5 2023/07/28 11:27
- Excel(エクセル) 条件に合った数値の合計を表示させたい関数と条件指定の方法 3 2023/05/13 16:07
- Excel(エクセル) ユーザー定義について質問です。 2 2023/06/28 13:21
このQ&Aを見た人はこんなQ&Aも見ています
-
10代と話して驚いたこと
先日10代の知り合いと話した際、フロッピーディスクの実物を見たことがない、と言われて驚きました。今後もこういうことが増えてくるのかと思うと不思議な気持ちです。
-
「平成」を感じるもの
「昭和レトロ」に続いて「平成レトロ」なる言葉が流行しています。 皆さんはどのようなモノ・コトに「平成」を感じますか?
-
初めて自分の家と他人の家が違う、と意識した時
子供の頃、友達の家に行くと「なんか自分の家と匂いが違うな?」って思いませんでしたか?
-
プリン+醤油=ウニみたいな組み合わせメニューを教えて!
プリンと醤油を一緒に食べると「ウニ」の味がする! というような意外な組み合わせから、新しい味になる食べ物って色々ありますよね。 あなたがこれまでに試した「組み合わせメニュー」を教えてください。
-
【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
【お題】 ・このサンタクロースは偽物だと気付いた理由とは?
-
【エクセル】行挿入で数式もいっしょにコピーしたい
Excel(エクセル)
-
エクセル。行を挿入すると、関数が反映されない
Windows 10
-
エクセルで行挿入しても計算式がずれない方法
Excel(エクセル)
-
-
4
エクセルのVBAで指定した行数の追加と数式のコピー方法をご教示いただけますか?
Visual Basic(VBA)
-
5
エクセルで上の行の値を自動的にコピーする
Excel(エクセル)
-
6
マクロ 行挿入で数式も反映する方法
Excel(エクセル)
-
7
シート保護の状態で行の追加を行いたい
その他(Microsoft Office)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EXCELにて複数列を同条件(色)...
-
エクセルで表示された値だけ行...
-
Excelの非表示列も含めてコピー
-
エクセルVBA 複数列をコピーす...
-
エクセルの関数について(日付で...
-
エクセルで空白以外のセルの値...
-
シート保護の状態で行の追加を...
-
行数が不規則な一週間ごとの合...
-
一行おきにコピーするマクロが...
-
エクセルのマクロ、AVERAGEIFを...
-
日報に自動で矢印線をひきたい
-
エクセルでマクロを使った特定...
-
【Excel-マクロ】グループとア...
-
エクセル マクロ 貼り付け先が...
-
エクセルで行挿入した際、自動...
-
マクロ 空白セルへの文字入力の...
-
[Excel VBA]空白セル以外に連番...
-
特定の桁数を抽出
-
EXCELで○ヶ月を○年○ヶ月に変換...
-
A1セルに入力したら、入力時間...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EXCELにて複数列を同条件(色)...
-
シート保護の状態で行の追加を...
-
一行おきにコピーするマクロが...
-
Excelの非表示列も含めてコピー
-
エクセルで行挿入した際、自動...
-
エクセルの関数について(日付で...
-
エクセル マクロ 貼り付け先が...
-
エクセルで表示された値だけ行...
-
エクセルで空白以外のセルの値...
-
[Excel VBA]空白セル以外に連番...
-
エクセルVBA 複数列をコピーす...
-
エクセルで反転コピー
-
エクセル VBA 指定の範囲内をコ...
-
行数が不規則な一週間ごとの合...
-
特定の桁数を抽出
-
マクロで値がある列までコピー
-
【Excel-マクロ】グループとア...
-
Excel VBAで日にちを入力して線...
-
エクセルでA列セルが空白の時そ...
-
エクセルVBA 並び替え セルの...
おすすめ情報