A B C D E
点名 高さ 幅 式 面積
0.0 0.0 2.0
10.0 10.0 3.0 (2.0+3.0)*10.0/2 25.0
15.5 5.5 2.5 (3.0+2.5)*5.5/2 15.1
・ ・ ・ ・ ・
というような単純な計算式を表示した表をマクロにて作りたいと思いました。
しかし、入力される行が不定のためわけが分からなくなってしまいました。
質問内容としては、
高さ、幅が入力されている状態で別シートに上記表と同じものを作りたいです。(できたら罫線付きで)(又は隣のセル。上記のように)
ちなみに先にも書いてありますが
行(列?縦方向です^^;)は不定です。
数は決まっていません。
どうかご教授いただきたいです。
また、質問で「意味わからんぞ!」というのがありましたら
補足いたしますのでよろしくお願いいたします。
No.2
- 回答日時:
関数で十分な内容です。
マクロのお勉強ですか。宿題ではないのかな。
VBの問題ではなく、エクセルVBAらしいですので、表題内にその語句を上げてください。
例データ Sheet1でA1:C4
台形について
底辺上辺高さ
2025
10310
15.52.55.5
結果
Sheet2に A1:E4
底辺上辺高さ式台形面積
2025(20+ 2)*5/255
10310(10+ 3)*10/265
15.52.55.5(15.5+ 2.5)*5.5/249.5
コード
Sub test01()
Dim sh1 As Worksheet
Dim sh2 As Worksheet
Set sh1 = Worksheets("Sheet1")
Set sh2 = Worksheets("Sheet2")
D = sh1.Range("A65536").End(xlUp).Row
MsgBox D
For i = 2 To D
sh2.Cells(i, "A") = sh1.Cells(i, "A")
sh2.Cells(i, "B") = sh1.Cells(i, "B")
sh2.Cells(i, "C") = sh1.Cells(i, "C")
sh2.Cells(i, "E") = (sh1.Cells(i, "A") + sh1.Cells(i, "B")) * sh1.Cells(i, "C") / 2
sh2.Cells(i, "D") = "(" & sh1.Cells(i, "A") & "+ " & sh1.Cells(i, "B") & ")" _
& "*" & sh1.Cells(i, "C") & "/" & "2"
Next i
End Sub
ーーー
(1)Setを使う
(2) sh1.Range("A65536").End(xlUp).Rowをつかう
(3)Cells( )を使う
よさを、勉強して味わってください。Sheet2の第1行見出しは
VBAでは略。
セル書式とかは略。
略とは自分で勉強せよということ。
ーー
台形で、質問にある「点名 高さ 幅 」というのかな?教科書で確認のこと。
回答ありがとうございます^^
自分なりに勉強しました。
そこで質問があります。
imogasiさんは
D = sh1.Range("A65536").End(xlUp).Row
とされていますが、
D = sh1.Range("A1").End(xlDown).Row(スペル違うかも^^;)
ではだめなんでしょうか?
試してみたら同じ結果になりましたけど
なぜ、最終行から上へと参照したのでしょうか?
もしよろしかったら教えていただきたいと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) ユーザー定義について質問です。 2 2023/06/28 13:21
- Excel(エクセル) マクロだと数式が表示される 2 2022/09/10 14:48
- Excel(エクセル) たくさんあるフォームコントロールを効率よく確認するには 1 2022/12/24 12:27
- Visual Basic(VBA) VBA 複数のブックに同じ列を表示させる方法 2 2022/07/20 23:49
- Excel(エクセル) Excel(エクセル)でフィルター抽出後、非表示の行を計算しないで、合計を算出する方法 【内容】 添 4 2023/01/30 17:17
- Excel(エクセル) ユーザー関数の自動計算(excel2003) 1 2023/02/06 06:46
- Excel(エクセル) 条件に合った数値の合計を表示させたい関数と条件指定の方法 3 2023/05/13 16:07
- Excel(エクセル) エクセルシートの合計の変動 5 2022/04/05 15:56
- Excel(エクセル) 列を自動で追加したい 3 2022/07/11 12:58
- Excel(エクセル) エクセルについて教えてください。 3 2023/03/24 08:34
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【Excel VBA】指定行以降をクリ...
-
ExcelVBAを使って、値...
-
i=cells(Rows.Count, 1)とi=cel...
-
特定のセルが空白だったら、そ...
-
Excelのプルダウンで2列分の情...
-
DataGridViewの各セル幅を自由...
-
VBAでセルをクリックする回...
-
【Excel】指定したセルの名前で...
-
TODAY()で設定したセルの日付...
-
DataGridViewで右寄せ左寄せが...
-
連続する複数のセル値がすべて0...
-
Excelで指定した日付から過去の...
-
特定の文字を条件に行挿入とそ...
-
Application.Matchで特定行の検索
-
Excel VBA、 別ブックの最終行...
-
エクセルVBAでコピーして順...
-
VLOOKUP関数で別ファイルを指定...
-
VBA コピーして次の値まで貼り...
-
【VBA】指定したセルと同じ値で...
-
ExcelのVBAで数字と文字列をマ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ExcelVBAを使って、値...
-
特定のセルが空白だったら、そ...
-
i=cells(Rows.Count, 1)とi=cel...
-
【Excel VBA】指定行以降をクリ...
-
Excelで指定した日付から過去の...
-
【Excel】指定したセルの名前で...
-
Excel vbaで特定の文字以外が入...
-
特定の文字を条件に行挿入とそ...
-
TODAY()で設定したセルの日付...
-
screenupdatingが機能しなくて...
-
Excelのプルダウンで2列分の情...
-
EXCELで変数をペーストしたい
-
連続する複数のセル値がすべて0...
-
Excel VBA、 別ブックの最終行...
-
VBAを使用した時間管理
-
エクセルVBAでコピーして順...
-
セル色なしの行一括削除
-
【EXCEL VBA】Range("A:A").Fi...
-
VBA コピーして次の値まで貼り...
-
VBA初心者です。結合セルを保持...
おすすめ情報