kazpgmの日記

『プログラム自動作成@自動生成』作成の日記

kaz_javaSpringBootプログラム作成ツールのエクセルVBAをVBに変えてエクセルの外に出す。

今日は、テーブル定義シートの入力チェックVBAVB.netにしている。
うまくいかないのがある。
①エクセルレンジ内のセルを見る箇所
VBA

Set Dst = Sheets("★TOOL用コンスタント★")
Set Rng = Dst.Range("★項目チェック内容と必要パラメータ★")
cx = Rng.Columns.Count
For i = 1 To cy
    If Cells(Target.row, cont項目チェック内容列) = 
            Rng.Cells(i, 1) Then 'Range1列 項目チェック内容と同じか

VB.net

Dim oWB As Excel.Workbook
Dim oSheets As Excel.Sheets
Dim Rng As Excel.Range
Dim Dst As Excel.Worksheet
Dim DstCells As Excel.Range

oWB = oXL.Workbooks.Open("エクセルファイル名")
oSheets = oWB.Worksheets
Dst = oSheets("★TOOL用コンスタント★")
DstCells = Dst.Cells
Rng = Dst.Range("★項目チェック内容と必要パラメータ★")
cx = Rng.Columns.Count
For i = 1 To cy
    If DirectCast(Dst1Cells(Target.row, cont項目チェック内容列), Excel.Range).Text.ToString = 
            Rng.Offset(i, 1)).Text.ToString Then 'Range1列 項目チェック内容と同じか

としたが、その中の「Rng.Cells(i, 1)」→「Rng.Offset(i, 1)).Text.ToString」が実行時ダメ。空白しか返ってこない。
ビルドはOKなのに・・・。ダメなので、やり方変える。Rng.Columns.Countは正しく帰ってくるので、「DirectCast(DstCells(i + 2, cont項目チェック内容列), Excel.Range).Text.ToString」にする予定。2は「★TOOL用コンスタント★」シート・「★項目チェック内容と必要パラメータ★」レンジの最初の行-1のこと。
補足:Dst1Cellsは入力チェックするシートのCells

②そのほかエクセルCELLSのInteriorがうまくいかなかったけど、解決した。
VBA

If Rng.Cells(index, 5) <> "○" Then 'Range5列 桁固定が○以外の時
    Cells(Target.row, cont桁固定指定列).Interior.ColorIndex = xlNone
Else
    With Cells(Target.row, cont桁固定指定列).Interior
        .ColorIndex = 35
        .Pattern = xlSolid
    End With

VB.net

Dim xlInterior As Excel.Interior
xlInterior = DirectCast(Dst2Cells(1, 1), Excel.Range).Interior
If DirectCast(DstCells(index + 1, 5), Excel.Range).Text.ToString <> "○" Then 'Range5列 桁固定が○以外の時
    xlInterior.ColorIndex = Excel.XlColorIndex.xlColorIndexNone
Else
    With xlInterior
        .ColorIndex = 35
        .Pattern = Excel.XlPattern.xlPatternSolid
    End With

補足:Dst1Cellsは入力チェックするシートのCells

■2021/06/21から、『kaz_javaSpringBootプログラム自動作成◎自動生成ツール』をVectorに載せています。2022年にZenn本も書きました。使ってみての感想や間違いの指定や、こうやったほうがいいとかの情報があればメールください。
Vector
www.vector.co.jp
・Zenn本(SpringBoot、Thymeleaf プログラム自動作成(マクロ使用版))
zenn.dev