ExcelVBA マクロの数値を2ケタに変更したい
http://www.exvba.com/blog/?p=3974
こちらの百ます計算のシートをダウンロードし活用させて頂こうと思っていますが、2ケタのものが作れるかを試してみたいと思っています。例えば26+57とか、81-32とかです。掛け算だけは、2ケタ×1ケタにしたいです。
当方プログラムが初心者でスキル不足のため、VBAがよく分かりません。以下がスクリプトのようですが、色々数値を変えてみましたがダメでした。
<--ここから-->
Option Explicit
'100マス計算ジェネレータ by 達人養成塾 http://www.exvba.com/
Sub main()
Dim calc As Long
With Application
calc = .Calculation
.Calculation = xlCalculationManual
InputBase Range("B5"), "+", False
InputBase Range("B18"), "-", True
InputBase Range("B31"), "×", False
.Calculation = calc
' .Calculation = xlAutomatic
End With
End Sub
Sub InputBase(bs As Range, op As String, bType As Boolean)
With bs
If Not IsEmpty(bs) Then
.CurrentRegion.ClearContents
End If
If Not IsEmpty(.Offset(, 12)) Then
.Offset(, 12).CurrentRegion.ClearContents
End If
SetLine bs, op, True, False
SetLine bs, op, False, bType
.CurrentRegion.Copy Destination:=.Offset(, 12)
ExeCalc bs, op
End With
End Sub
Private Sub SetLine(base As Range, ope As String, bRow As Boolean, add10 As Boolean) '起点セル、演算子、行か列か、値に10を足すか
Dim c As Long, ar(9) As Long
With base
.Value = ope
Application.Calculate
With Worksheets("rnd")
.Range("A2:B12").Sort key1:=.Range("B2"), order1:=xlAscending, Header:=xlYes
For c = 3 To 12
ar(c - 3) = .Range("A" & c).Value
Next
End With
If bRow Then
For c = 1 To 10
.Offset(c).Value = ar(c - 1)
Next
ElseIf Not add10 Then
For c = 1 To 10
.Offset(, c).Value = ar(c - 1)
Next
Else
For c = 1 To 10
.Offset(, c).Value = ar(c - 1) + 10
Next
End If
End With
End Sub
Private Sub ExeCalc(base As Range, ope As String)
Dim r As Long, c As Long
With base.Offset(, 12)
Select Case ope
Case "+"
For r = 1 To 10
For c = 1 To 10
.Offset(r, c).Value = .Offset(r).Value + .Offset(, c).Value
Next
Next
Case "-"
For r = 1 To 10
For c = 1 To 10
.Offset(r, c).Value = .Offset(, c).Value - .Offset(r).Value
Next
Next
Case Else
For r = 1 To 10
For c = 1 To 10
.Offset(r, c).Value = .Offset(r).Value * .Offset(, c).Value
Next
Next
End Select
End With
End Sub
<--ここまで-->
こちら他者様の著作物になりますので、もしこうした質問が不適切でしたら削除させて頂きます。
もしよろしければアドバイスを頂けましたら幸いに思います。
お礼
早速の御回答有り難うございます。 御指摘頂戴しました「Columns("D:D").NumberFormatLocal = "@"」を元のマクロに加えて動作確認致しました。 質問させて戴きました、誤作動は見られず正常に目次が作れるようになりました。 御回答して戴きましたこと実に感謝しております。 有り難う御座いました。