クラスモジュール
Public 売上日 As Variant
Public 商品コード As String
Public 商品名 As String
Public 担当者名 As String
Public 金額 As Long
Public Property Get Self() As sale
Set Self = Me
End Property
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
標準モジュール
Enum 列
売上日 = 1
商品コード = 2
商品名 = 3
担当者名 = 4
金額 = 5
End Enum
Sub 出力②()
Dim TableRange As Range
Dim TableValue As Variant
Dim sh As Worksheet
Set sh = ThisWorkbook.Sheets("Sheet1")
'表のデータを取得する
With ThisWorkbook.Worksheets("Sheet1").Range("A1").CurrentRegion
Set TableRange = .Resize(.Rows.Count - 1).Offset(1)
End With
'表のデータを配列に取得する
TableValue = TableRange.Value
Dim sale As New Collection
Dim i As Long
maxrow = Cells(Rows.Count, "A").End(xlUp).Row
For i = 2 To maxrow
With New sale
.売上日 = sh.Cells(i, 列.売上日)
.商品コード = sh.Cells(i, 列.商品コード)
.商品名 = sh.Cells(i, 列.商品名)
.担当者名 = sh.Cells(i, 列.担当者名)
.金額 = sh.Cells(i, 列.金額)
sale.Add .Self
End With
Next
Dim p As sale
For Each p In sale
If p.金額 >= 600000 Then
Debug.Print p.担当者名; p.商品名; p.売上日; p.商品コード
End If
Next
End Sub
このコードを書籍とNETの情報で作成しました。
作動します。
ーーーーーーーーーーーーーーーーーー
If p.金額 >= 600000 Then
Debug.Print p.担当者名; p.商品名; p.売上日; p.商品コード
End If
ーーーーーーーーーーーーーーーーーー
この部分をセルに転記したいのです。
試したこと
Cells(i, 1) = p.商品名(i)
エラー 引数の数が一致しません。
For j = 0 To Ublond(TableValue)
Cells(j + 20, 1) = TableValue(j)
エラー sub または、functionが定義されていません
上記のコードで私の認識では、すでに配列に格納されているとおもうのですが、
どのように転記したらいいのでしょうか?
お手数ですが、ご教示をお願いします。
No.3
- 回答日時:
No.2です。
殆ど被っちゃいましたね。
クラスモジュールを弄ってみたいならVBAよりVBやVC#の方がまだ扱えたと感じますよ。
Excelは独自の機能がありすぎて混乱(不要に感じる?)しましたし。
敢えて言えばユーザーフォームで同じコントロールを複数配置した際の使い分けとかですかね。
No.2ベストアンサー
- 回答日時:
変数:TableValue は2次元配列である事とセル範囲に0行や0列がない点で、For j = の最初は1である。
Ublondについては綴りミスで UBound(TableValue, 1)が正解かと。
ちなみに初級レベルなのでクラスモジュールは???ですが、見た感じクラス名を標準モジュール内で宣言されてないようにも思えましたが、私の老眼が原因なのかな?
>Debug.Print p.担当者名; p.商品名; p.売上日; p.商品コード
ここはクラスモジュールでも個々に宣言しているので、
>p.商品名(i)
配列などと同じようにインデックスはないようにも思えますが・・・(自信なし!!!!!!)
>For j = 0 To Ublond(TableValue)
>Cells(j + 20, 1) = TableValue(j)
For j = 1 To UBond(TableValue, 1)
Cells(j + 19, 1) = TableValue(j, 1)
になるのかな?
No.1
- 回答日時:
こんにちは
>この部分をセルに転記したいのです。
セルから読み込んでいるだけなので、すでにシートに記入されているものと同じですけれど・・・?
ざっと見た限り、エクセルの機能のフィルタをかければ一発ではないでしょうか?
(抽出したいのであれば、その状態でコピペ)
あるいは条件付き書式で、強調表示になるようにしておくとか。(これならマクロ不要)
そもそも、なぜご提示のような回りくどい記述になっているのかが不明です。
クラスと配列の二重で表をコピーしていて、しかも配列の方は使っていないみたいだし・・・
処理内容からすれば、わざわざクラスや配列に取り込む必要も無いようにも思えますが…
(データ数が多くて処理速度を上げるためにメモリ内で処理したいのなら、むしろ配列でまとめて読み書きするなどにしないと意味がありません。)
>Cells(i, 1) = p.商品名(i)
左辺に関しては、変数i の値をどのように制御しているのでしょうか?
右辺に関しては、p.商品名は配列になってはいません。(ご自分で定義しているはず)
>For j = 0 To Ublond(TableValue)
>Cells(j + 20, 1) = TableValue(j)
「Ublond」は(多分)「UBound」の間違え
TableValueは二次元配列になっているはずです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 前回ご教授いただいたコードに覚えたてのループ処理で品名りんごAから順に20回for nextでループ 7 2023/01/13 22:01
- Visual Basic(VBA) 別シートのデータを参照して値を入れたい。 まとめデータシートのC列D列の値を商品一覧シートのコードが 7 2022/08/17 13:20
- Visual Basic(VBA) VBAコードが作動せず、どこに問題があるのか教えて下さい。 3 2023/06/13 13:20
- Visual Basic(VBA) 稀に1円合いません? Sheet1から金額と個数を貼り付ける下記コードで、金額を切り上げるコードを何 3 2022/09/05 15:11
- Visual Basic(VBA) 追記する列を増やしたい 2つのデータを検索・照合して元データにないデータを下記マクロで商品名を追記し 9 2022/10/05 10:50
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Visual Basic(VBA) VBA 税率を判定表する方法を教えて下さい。 10 2022/03/28 11:21
- Excel(エクセル) VBAの指示の内容 昨日こちらでご教示頂いたのですが初心者な為、一つ一つの指示が何をやっているのかわ 2 2022/10/25 18:08
- Visual Basic(VBA) ExcelVBAで、index、match関数を使用して、指定範囲に出力したい 3 2022/10/18 21:53
- Visual Basic(VBA) まとめシートから集計シートへA列のコードが一致したら1行コピーするマクロをネット上で見つけました。こ 1 2022/08/30 14:11
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Vba 実数および実数タイプの変...
-
Excelのマクロについて教えてく...
-
VBA レジストリの値の読み方に...
-
ExcelのVBAコードについて教え...
-
Excel マクロについての相談
-
Excel VBA 定義されたプロージ...
-
Vba SelStart、SelLen教えてく...
-
エクセルのマクロについて教え...
-
VBAに詳しい方教えてください。
-
VBAの質問になります メッセー...
-
ユーザーフォームに別シートか...
-
2つのマクロでチェックボックス...
-
VBA listBoxから
-
VBA初心者 Ctrl+での操作、ボタ...
-
VBA 複数条件の分岐処理の上手...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
左右の表のキー位置を合わせたい
-
VBAの質問になります Userform内で
-
Excelについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel VBA 定義されたプロージ...
-
Excel-VBAのmsgBox()の不思議
-
【VBA】マクロの入ったファイル...
-
VBA 複数条件の分岐処理の上手...
-
現在のブックを閉じないで、マ...
-
VBAで各列の"+"と"o"の合計数を...
-
VBAに詳しい方教えてください。
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
ユーザーフォームに別シートか...
-
エクセルのマクロについて教え...
-
ExcelVBA シート名を複数セルか...
-
エクセルのマクロについて教え...
-
VBA listBoxから
-
Excelのマクロについて教えてく...
-
エクセルのマクロについて教え...
おすすめ情報