kaz_javaSpringBootプログラム作成ツールのエクセルVBAをVBに変えてエクセルの外に出す。
今日は、テーブル定義シートの入力チェックVBAをVB.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