vbaにて、ボタンを押したときの結果 と コード入力部分の実行 を押したときの動作が異なります。
結果的には、後者の入力のときは正しく入力されます。
変数dは、どちらも正しく読み込まれておりますが、前者でのみcell(x,7).valueの値が読み込まれず、dのままの数値になります。
わかりずらい説明で申し訳ありませんがどなたか解決方法を教えていただきたいです。
#インシデント
例えば下記の部分であれば、cells(9,7)のセルの数値+dをcells(9,8)に出力するというものですが
ボタンを押したときの場合、dのみの値になってしまっています。
コード入力の実行の部分であれば問題なく作動します。
vba
1Dim d As Integer 2 3d = Cells(Cells(9, 15).Value + 1, 2).Value 4 5Cells(9, 8).Value = Cells(9, 7).Value + d 6Cells(10, 8).Value = Cells(10, 7).Value + d 7Cells(11, 8).Value = Cells(11, 7).Value + d 8Cells(12, 8).Value = Cells(12, 7).Value + d 9
vba
1Sub ボタン1_Click() 2 3If Cells(9, 13) = "1" Then 4 5Dim d As Integer 6 7d = Cells(Cells(9, 15).Value + 1, 2).Value 8 9Cells(9, 8).Value = Cells(9, 7).Value + d 10Cells(10, 8).Value = Cells(10, 7).Value + d 11Cells(11, 8).Value = Cells(11, 7).Value + d 12Cells(12, 8).Value = Cells(12, 7).Value + d 13 14Call fanc1 15 16ElseIf Cells(9, 13) = "2" Then 17 18p = Cells(Cells(9, 13).Value + 1, 2).Value 19d = Cells(Cells(9, 15).Value + 1, 2).Value 20 21Cells(9, 8).Value = Cells(9, 7).Value + d 22Cells(13, 8).Value = Cells(13, 7).Value + d 23Cells(14, 8).Value = Cells(14, 7).Value + d 24Cells(15, 8).Value = Cells(15, 7).Value + d 25 26Call fanc1 27 28ElseIf Cells(9, 13) = "3" Then 29 30p = Cells(Cells(9, 13).Value + 1, 2).Value 31d = Cells(Cells(9, 15).Value + 1, 2).Value 32 33Cells(10, 8).Value = Cells(10, 7).Value + d 34Cells(13, 8).Value = Cells(13, 7).Value + d 35Cells(16, 8).Value = Cells(16, 7).Value + d 36Cells(17, 8).Value = Cells(17, 7).Value + d 37 38Call fanc1 39 40ElseIf Cells(9, 13) = "4" Then 41 42p = Cells(Cells(9, 13).Value + 1, 2).Value 43d = Cells(Cells(9, 15).Value + 1, 2).Value 44 45Cells(11, 8).Value = Cells(11, 7).Value + d 46Cells(14, 8).Value = Cells(14, 7).Value + d 47Cells(16, 8).Value = Cells(16, 7).Value + d 48Cells(18, 8).Value = Cells(18, 7).Value + d 49 50Call fanc1 51 52ElseIf Cells(9, 13) = "5" Then 53 54p = Cells(Cells(9, 13).Value + 1, 2).Value 55d = Cells(Cells(9, 15).Value + 1, 2).Value 56 57Cells(12, 8).Value = Cells(12, 7).Value + d 58Cells(15, 8).Value = Cells(15, 7).Value + d 59Cells(17, 8).Value = Cells(17, 7).Value + d 60Cells(18, 8).Value = Cells(18, 7).Value + d 61 62Call fanc1 63 64End If 65 66End Sub 67 68Function fanc1() 69 70Dim p As Integer 71p = Cells(Cells(9, 13).Value + 1, 2).Value 72 73If Cells(9, 15) = "1" Then 74 75Cells(9, 8).Value = Cells(9, 7).Value + p 76Cells(10, 8).Value = Cells(10, 7).Value + p 77Cells(11, 8).Value = Cells(11, 7).Value + p 78Cells(12, 8).Value = Cells(12, 7).Value + p 79 80ElseIf Cells(9, 15) = "2" Then 81 82Cells(9, 8).Value = Cells(9, 7).Value + p 83Cells(13, 8).Value = Cells(13, 7).Value + p 84Cells(14, 8).Value = Cells(14, 7).Value + p 85Cells(15, 8).Value = Cells(15, 7).Value + p 86 87ElseIf Cells(9, 15) = "3" Then 88 89Cells(10, 8).Value = Cells(10, 7).Value + p 90Cells(13, 8).Value = Cells(13, 7).Value + p 91Cells(16, 8).Value = Cells(16, 7).Value + p 92Cells(17, 8).Value = Cells(17, 7).Value + p 93 94ElseIf Cells(9, 15) = "4" Then 95 96Cells(11, 8).Value = Cells(11, 7).Value + p 97Cells(14, 8).Value = Cells(14, 7).Value + p 98Cells(16, 8).Value = Cells(16, 7).Value + p 99Cells(18, 8).Value = Cells(18, 7).Value + p 100 101ElseIf Cells(9, 15) = "5" Then 102 103Cells(12, 8).Value = Cells(12, 7).Value + p 104Cells(15, 8).Value = Cells(15, 7).Value + p 105Cells(17, 8).Value = Cells(17, 7).Value + p 106Cells(18, 8).Value = Cells(18, 7).Value + p 107 108End If 109 110End Function
変数bが見当たりません。
シートの構成は?
対象とするシートは?
ボタン1_Click関数を置いているシートは?
VBEから実行するときどのシートがアクティブ?
コードはコードタグで括ってください。その際インデントも忘れずにお願いします。
変数はdでした。誤字失礼いたしました。
ボタンが置かれているシートと実行するときのシートは同じかと思います。
(シートは1枚しか作成していないので)
対応ありがとうございます。
コードのインデントがされてないですが、まあいいでしょう。
シートが1つしかないのであれば、不可解な動きですね。
時間があるときに調べてみます。
インシデント追加させていたしました。
ああ、いや、お願いしたのは「インデント(字下げ)」のことなんですが・・・
> cell(x,7).valueの値が読み込まれず
「読み込まれず」のところ正確にお願いします。
文字通り読み込むことができない(エラー)なのか、「0」なのか、「空文字」なのか。
cells(x,7)は空文字になってしまいます。
先ほど別の部分に出力したところ、何も出力されませんでした。
エラーは特に出ません。
回答1件
あなたの回答
tips
プレビュー