マクロ初心者です。
名前,走行距離,使用燃料,燃費
Aさん,2500,120,
Bさん,3100,150,
Cさん,4200,190,
…
上記のようなシートがあり、燃費の列は空欄となっています。
その中で、走行距離と使用燃料から燃費を算出するマクロを作ろうと思います。
しかし、運転手の人数は解析ごとに異なるので、人数をカウントして、その分だけ繰り返し計算をおこなう必要があります。
また、これらを縦棒グラフで表現させたいと考えております。
まとめると、以下の命令になるのかな?
(1)運転手人数を数える
(2)燃費計算の繰り返す(人数分)
(3)アクティブセル内のデータを抽出し、グラフを作成(燃費)
これらの処理をおこなうためには、どうマクロを作成すればよいのでしょうか?
ご意見いただけると幸いです。
以上、よろしくお願いします。
A 回答 (5件)
- 最新から表示
- 回答順に表示
No.5
- 回答日時:
Sub test01()
d = Range("A65536").End(xlUp).Row
MsgBox d
For i = 2 To d
Cells(i, "D") = Cells(i, "B") * Cells(i, "C")
Next i
End Sub
これで済むようだが、どこか違いますか。
>運転手の人数は解析ごとに異なるので
の意味がわかりません。間に空白行があるのですか。
>縦棒グラフで表現させたいと
どの系列のデータでグラフを作るのですか。3データで作ると
桁が違いすぎて、違いが見えないのですが、どう考えるべきですか。
No.4
- 回答日時:
#2です。
参考までに下記のようなものをどうぞ。
このコードでは運転手の人数は別として、運転手の欄に名前のある行のみ
に燃費計算式を入れるものです。
Sub 燃費計算()
Dim i As Long
For i = 2 To Range("A65536").End(xlUp).Row
If Cells(i, 1).Value <> "" Then
Cells(i, 4).Value = "=round(B" & i & "/C" & i & ",1)"
Cells(i, 4).NumberFormatLocal = "0.0""km/l"""
End If
Next i
End Sub
No.3
- 回答日時:
名前がA1だとしたら
燃費
D2=B2/C2
右下角ダブルクリック
で表の作成ができます。
走行距離や、使用燃料が変化することを考えると、マクロで計算するより式でやった方がいいと思います。
グラフは、
Aさん以下の範囲と
対応する燃費の部分をCTRLで範囲してしてやってからグラフを作成すればいいです。
マクロで作業した方が今後の手間が省けるかと思ったのですが…
Nが少ない場合は、直接操作するほうがいいですよねw
丁寧な説明ありがとうございます。
No.2
- 回答日時:
失礼ですが、マクロの作成依頼ですか?
回答者の方から回答をもらってそのまま使用するのはいかがなものかと。
質問者様の為にもなりません。マクロ初心者とのことですが、それならば
勉強して、「ここまでできたけど」とある程度コードを掲示して頂いてから
不明な点をご質問された方がいいですよ。
ご指摘ありがとうございます。
初めは、CurrentRegionでアクティブセルを選択してできるものかと思ったのですが…
手も足もでませんでした。
でも、書込みをしながらマクロの値を定義をすればいいのかな?
という気づきを得ることができました。
感謝します。
No.1
- 回答日時:
(1)、(2)について、表が以下のようにある場合
さらに、前提条件として、運転手の名前が途中で
行で途切れることはない(4列目は空白で5列目移行に
名前が記入されていることはない)とします。
|A, B, C, D
-------------------------------
1|名前,走行距離,使用燃料,燃費
2|Aさん,2500,120,
3|Bさん,3100,150,
4|Cさん,4200,190,
5|…
row = 2
Do While Cells(row, 1) <> ""
Cells(row, 4) = Cells(row, 2) / Cells(row, 3)
'↑燃費計算
row = row + 1
Loop
cnt = row - 2 '運転手の人数
A,B,C,Dをそれぞれ名前、走行距離、使用燃料、燃費と定義して、以下の様につくりました。
Dim nDriver As Integer ' ドライバの人数
Dim count As Integer
Dim ドライバ As Range
Dim 燃費 As Range
Dim tmp As Range
Dim シート名 As String
' ドライバ名のカウント
nDriver = Range("A65536").End(xlUp).Row ' A列で入力がある行数をカウントしている。
シート名 = ActiveSheet.Name
' 燃費の計算
For count = 2 To nDriver Step 1
ActiveSheet.Cells(count, 燃費列).Value = _
ActiveSheet.Cells(count, 走行距離列).Value / ActiveSheet.Cells(count, 消費燃料列).Value
Next
' グラフ化
Set ドライバ = Range(Cells(2, ドライバ名列), Cells(nDriver, ドライバ名列))
Set 燃費 = Range(Cells(2, 燃費列), Cells(nDriver, 燃費列))
Set tmp = Union(ドライバ, 燃費)
Charts.Add
ActiveChart.ChartType = xlColumnClustered
ActiveChart.SetSourceData Source:=tmp, _
PlotBy:=xlColumns
ActiveChart.Location Where:=xlLocationAsObject, Name:=シート名
ActiveChart.HasDataTable = False
ActiveChart.Axes(xlValue).Select
難しくはなかったようです…
アクティブセルの選択がわからず、つまずいていました。
ありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(データベース) Accessフォームにて指定のフィールドの平均値を小数点第一位で表示できない 2 2022/08/30 17:19
- 環境学・エコロジー 二酸化炭素の排出 1 2023/08/07 16:40
- その他(バイク) 昨年末に二輪免許を取り、1ヶ月前にGSX-S125(2021)を新車で納車していただいた初心者です。 7 2022/05/08 20:57
- その他(車) 仕事とプライベートで使用する車について 8 2023/04/26 22:19
- 環境・エネルギー資源 新たな原子力神話? 未だに原子力発電の発電原価が廉価だと信じている人が多いようですけど、これって完全 13 2023/01/26 06:39
- Excel(エクセル) エクセルのマクロ作成について教えてください 5 2023/02/20 00:39
- 工学 ヒートぽんぷ の可能性についてです ? / 6 2023/03/03 13:23
- 国産車 セレナC26の後席A/C使用時の燃費について 3 2022/09/23 11:49
- バイク車検・修理・メンテナンス 400cc アメリカン xv400 virago のキャブレターを社外品に新品交換 2 2023/08/28 06:18
- 工学 ヒートぽんぷ の段々畑 についてです ? 2 2023/03/10 18:39
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel・Word リサーチ機能を無...
-
エクセルのマクロについて教え...
-
特定のPCだけ動作しないVBAマク...
-
Excel マクロ VBA プロシー...
-
エクセルのマクロについて教え...
-
エクセルで特定の列が0表示の場...
-
メッセージボックスのOKボタ...
-
エクセルのマクロについて教え...
-
エクセルに張り付けた写真のフ...
-
VBA アドインについて お詳しい...
-
ExcelのVBA。public変数の値が...
-
マクロ実行時、ユーザーフォー...
-
TERA TERMを隠す方法
-
エクセルで別のセルにあるふり...
-
一つのTeratermのマクロで複数...
-
EXCELのVBAでRange("A1:C4")を...
-
ExcelVBAでPDFを閉じるソース
-
TeraTermマクロの文字列結合
-
Excel VBAからAccessマクロを実...
-
ファイルが見つからない時、ス...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel・Word リサーチ機能を無...
-
特定のPCだけ動作しないVBAマク...
-
エクセルで特定の列が0表示の場...
-
Excel マクロ VBA プロシー...
-
メッセージボックスのOKボタ...
-
一つのTeratermのマクロで複数...
-
エクセルに張り付けた写真のフ...
-
ExcelのVBA。public変数の値が...
-
TERA TERMを隠す方法
-
Excelのマクロ(VBA)は、同じ...
-
ExcelVBAでPDFを閉じるソース
-
Excel VBAからAccessマクロを実...
-
EXCELのVBAでRange("A1:C4")を...
-
#defineの定数を文字列として読...
-
マクロ実行時、ユーザーフォー...
-
エクセルのマクロをセルの値に...
-
Outlookにて既にウィドウ単体で...
-
エクセルで別のセルにあるふり...
-
マクロで空白セルを詰めて別シ...
-
TeraTermマクロの文字列結合
おすすめ情報