アフィリエイト広告を利用しています
検索
カテゴリーアーカイブ
タグクラウド
最新記事

2023年06月30日

【Excel VBA】ユーザー定義型でちょっとハマった件

お題

constがカオス・・・w
似たようなものがいっぱいあってごっちゃごちゃだから、まとめよう。
と思ったらちょっと罠があったので、メモ。


実装

●定義
Public Type FileInfo
    fileName As String
    shtName As String
    beginRow As Long
    endColumn As Long
End Type


●値セット
Public Function SetType(ByRef info1 As FileInfo,ByRef info2 As FileInfo)
    With info1
        .fileName = "test.xls"
        .shtName = "sheet1"
        .beginRow = 2
        .endColumn = 8
    End With

    With info2
        .fileName = "test2.xls"
        .shtName = "sheet2"
        .beginRow = 2
        .endColumn = 10
    End With
End Function


●呼び出し
Dim info1 As FileInfo,info2 As FileInfo
Sub Main()
    Call SetType(info1,info2)
End Sub



メモ

FunctionはByRefで渡さないと、エラー吐きます。
へなちょこは理由がなければ基本ByVal渡しする派なので、最初は何も考えずにByValで渡してて、ちょっとハマった
当たり前よね笑

ユーザー定義型にしておくと、メンバが表示されるようになるので、入力間違いも防げるし、いちいち宣言しなくてもいいから楽ちん♪
今回はあくまでターゲットの情報をわかりやすくしたかったので、あえて別のオブジェクトにしてみた。
infoをまとめてがちゃがちゃやる場合はinfoを配列にしちゃえばいいよ。










タグ:Excel tips
プロフィール
へなちょこさんの画像
へなちょこ
都内に出没するOLっぽい何か。大好物はExcelと効率化。独学でVBAやAccessをいじり始め、早10年。 5歩歩くと忘れてしまうので、ここにメモしていきます。
プロフィール
記事ランキング
  1. 1. 【Excel VBA】ユーザーフォームのCaptionが文字化け
  2. 2. 【Office365 SharePoint】Notesへのリンクを貼りたい
  3. 3. 【Excel VBA】StatusBarが表示されない
  4. 4. 【Excel VBA】入力規則でアプリケーション定義エラー
  5. 5. 【Excel】最大化で起動してくれない件
  6. 6. 【Excel VBA】Workbook_openで「パス名が無効です」
  7. 7. 【Excel VBA】.xlsm→.xlsx保存でエラー
  8. 8. 【Win10】タスクバーのプレビューを非表示にしたい
  9. 9. 【Win10】エクスプローラーがフリーズする
  10. 10. 【Win10】再発!!PC再起動すると、クイック起動バーが消える
ファン