- ベストアンサー
プログラムについて
初心者の質問ですみません。 関数の読み出しについてですが、 A1実施→X1となり、X1をa()に代入する。 これを数回ループする場合、aのデータを他の関数で読み出し 変数に代入したい場合どのような記述が良いでしょうか? sub test1() Dim i,X as integer Dim A(10) as integer Dim a(10) as integer For i = 0 to 10 X = A(i)+300 a(i)=X next i End sub sub test2() ※ここにどのように記載すればa(i)を読み出せますか? End sub
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (3)
- うぃず(@Wizard_Zero)
- ベストアンサー率69% (344/495)
- JavaJavax2
- ベストアンサー率22% (68/305)
- JavaJavax2
- ベストアンサー率22% (68/305)
関連するQ&A
- 擬似マインスイーパー
任意の地雷を設置するというプログラムです。 この中で地雷を*に、安全地帯を空白にしたいのですがやり方がわからないので、わかる方お願いします。 Sub mine() Dim minefield(11, 13) As Integer Dim i As Integer, a As Integer, b As Integer Dim c As Integer c = InputBox("地雷の数を決めます") Randomize For i = 1 To c a = Int(Rnd * 10) + 1 b = Int(Rnd * 12) + 1 If minefield(a, b) = 9 Then i = i - 1 minefield(a, b) = 9 Next i countMine minefield, 10, 12 showInt minefield, 10, 12 ' show minefield, 10, 12 End Sub Sub countMine(f() As Integer, h As Integer, w As Integer) Dim i As Integer, j As Integer Dim a As Integer, b As Integer Dim x As Integer For a = 1 To 10 For b = 1 To 12 If f(a, b) < 9 Then x = 0 If f(a, b - 1) = 9 Then x = x + 1 '左に地雷があるか If f(a, b + 1) = 9 Then x = x + 1 '右に地雷があるか ' ... この部分に追加したいのだが ... f(a, b) = x End If Next b Next a End Sub Sub showInt(f() As Integer, h As Integer, w As Integer) Dim i As Integer Const a As Integer = 7 Const b As Integer = 3 Do While h > 0 For i = 1 To w Cells(a + h, b + i) = f(h, i) Next i h = h - 1 Loop End Sub
- 締切済み
- Visual Basic
- VBA "double"から0.1を引くと・・・
エクセルVBAですが、double型で変数を定義し、-80を代入します。 そこから0.1ずつを引いていきます。すると、途中から桁がおかしくなってしまいます。 (注:別に-80からでなくても、どの値からでも、また、引いていっても足していっても、遅かれ早かれ どこかから桁がおかしくなってしまいます。) -80 -80.1 -80.2 …中略 -80.8 -80.8999999999999 -80.9999999999999 … といった感じです。 どうしてこのようになってしまうのでしょうか。 また、このようにならないためにはどうしたらよいのでしょうか。 いかにサンプルプログラムを載せます。 ------------------------------------------ Sub test() Dim test As Double Dim i As Integer test = -80 For i = 1 To 100 test = test - 0.1 Cells(i, 1) = test Next i End Sub ----------------------------------
- ベストアンサー
- Visual Basic
- ※VBA配列
http://oshiete1.goo.ne.jp/qa5196795.htmlで 質問させてもらった者です。質問不足だったため 質問の内容を追加したかったのですが、追加の方法がわからず またこちらで質問させていただきました Dim time1 As Integer, time As Integer Dim X As Integer, Y As Integer Dim X1 As Integer, Y1 As Integer Dim X2 As Integer, Y2 As Integer Dim maru As String, yoko As String, tate As String Dim sankaku As String, shikaku As String Sub 描画() Cells(Y2, X2).Value = shikaku Cells(Y1, X1).Value = sankaku Cells(Y, X).Value = maru End Sub Sub 削除() Cells(Y2, X2).Value = "" End Sub Sub 待機() For time1 = 0 To 1000 For time2 = 0 To 1000 Next Next End Sub Sub 座標移動() X2 = X1 Y2 = Y1 X1 = X Y1 = Y If yoko = "右" Then X = X + 1 Else X = X - 1 End If If X = 30 Then yoko = "左" ElseIf X = 1 Then yoko = "右" End If If tate = "上" Then Y = Y + 1 Else Y = Y - 1 End If If Y = 20 Then tate = "下" ElseIf Y = 1 Then tate = "上" End If End Sub Sub main() maru = "●" sankaku = "▲" shikaku = "■" X = 1 Y = 1 X1 = 1 Y1 = 1 X2 = 1 Y2 = 1 yoko = "右" tate = "上" Do 描画 待機 削除 待機 座標移動 Loop End Sub a~tの文字が、上記のような動きをする プログラムを作成するにはどのように配列を活かせばいいですか? 配列がよくわかっておらず勉強したのですが…使えずにいます;;
- ベストアンサー
- その他(プログラミング・開発)
- 【vb.net】クラス化について
大学で以下のような練習問題を頂きました。 ----- Public Sub test() Dim a As b = New c Dim i As Integer = 1 a.disp(i) End Sub 問:この時のbとcを実装せよ。 ----- Public Class c Public Function disp(ByVal i As Integer) As String return "iは" & i & "です" End Function End Class までは書いてみたのですが、b の扱いがどうもわかりません。 どなたか教えていただけませんでしょうか。
- ベストアンサー
- Visual Basic
- Excel VBA ・・・教えてください
何度も質問させて頂いてます。すみません、 下記のプログラムはこの場で教えて頂いたプログラムで、 実行すると●の後を▲や■が追いかける動きをします。 下記のプログラムをある程度使用して 1~20の数字が順々で追いかけっこする プログラムを作成するにはどのようにすればいいのでしょうか… できればプログラムは長めにならず 20の数字から簡単に増やすことのできるような そんなプログラムが作成したいです… どなたかアドバイスお持ちの方 教えて下さいお願いします... Dim time1 As Integer, time As Integer Dim X As Integer, Y As Integer Dim X1 As Integer, Y1 As Integer Dim X2 As Integer, Y2 As Integer Dim maru As String, yoko As String, tate As String Dim sankaku As String, shikaku As String Sub 描画() Cells(Y2, X2).Value = shikaku Cells(Y1, X1).Value = sankaku Cells(Y, X).Value = maru End Sub Sub 削除() Cells(Y2, X2).Value = "" End Sub Sub 待機() For time1 = 0 To 1000 For time2 = 0 To 1000 Next Next End Sub Sub 座標移動() X2 = X1 Y2 = Y1 X1 = X Y1 = Y If yoko = "右" Then X = X + 1 Else X = X - 1 End If If X = 30 Then yoko = "左" ElseIf X = 1 Then yoko = "右" End If If tate = "上" Then Y = Y + 1 Else Y = Y - 1 End If If Y = 20 Then tate = "下" ElseIf Y = 1 Then tate = "上" End If End Sub Sub main() maru = "●" sankaku = "▲" shikaku = "■" X = 1 Y = 1 X1 = 1 Y1 = 1 X2 = 1 Y2 = 1 yoko = "右" tate = "上" Do 描画 待機 削除 待機 座標移動 Loop End Sub
- ベストアンサー
- その他(プログラミング・開発)
- [と”の意味を教えてください。
http://okwave.jp/qa/q5945112.html を参考に、 Sub test1() Dim i As Integer i = 2 If i Like "[1-3]" Then MsgBox i & "です" End If End Sub Sub test2() Dim i As Integer i = 2 If i Like "[1-5]" Then MsgBox i & "です" End If End Sub Sub test3() Dim i As Integer i = 2 If i Like "[1-10]" Then MsgBox i & "です" End If End Sub を作ったのですが、 test3はうまく行きません。 意味としては、 iが "[1-10]"の中の数字の間のどれかであれば、 MsgBox i & "です" を表示させたいです。 でも上記のマクロを実行させた結果、 "[1-10]"の中で計算が行われてるのではないかと思います。 だから、test3は、1-10=-9 という事になり、msgboxが反応しないのではないかと思っています。 でもそうすると、test2だって "[1-5]"は、-4になって、i=2とは違う値なのに なぜMsgBoxが反応してしまうのかわかりません。 でもそもそも[と”の意味が分からないのでそこから教えていただけませんか? “の意味、は二つで挟んで文字列にすると思っています。
- ベストアンサー
- オフィス系ソフト
- VBAのUserFormでサブルーチンを用いる
UserFormのコードに次のように書いてbuttomを押してみると コンパイルエラー:ByRef引数の型が一致しません。 と出てしまいます。 どこが間違っているのでしょうか?ご回答お願いします。 Private Sub buttom_Click() Dim i As Integer Dim name As String i = 1 name = "名前" Call test(i , name) End Sub ---------------------------------------------- Sub test(i As Integer, name As String) Cells(i , 1) = name End Sub
- ベストアンサー
- その他MS Office製品
- エクセル マクロ ループ処理の構文について
お世話になります。エクセル初心者です。 i < j の関係があるときに、それぞれの数値をfor構文でループを回したいです。 i の数値は外部から入力される前提です。 現在、以下のような構文を考えています(istartとiendは外部から決められた数値とします)が、 この場合、jendはiend + 1とすれば良いのですが、jstartはどのように入力すれば良いでしょうか? 修正箇所を指摘(もしくは全文修正)していただけると、非常に助かります。 よろしくお願いいたします。 Sub test() Dim i As Integer Dim j As Integer Dim istart As Integer Dim iend As Integer Dim jstart As Integer Dim jend As Integer istart = 1 iend = 50 For i = istart To iend For j = jstart To jend '実行したい内容 Next Next End Sub
- 締切済み
- Visual Basic
- 列番号のAやBも、数値で指定するには
Sub test() Dim int1 As Integer Dim int2 As Integer int1 = 1 int2 = 2 Cells(3, 1) = "=A" & int1 & "*B" & int2 End Sub このような場合、列番号のAやBも、 数値で指定するにはどうすればいいでしょうか?
- ベストアンサー
- Excel(エクセル)
- VBAで縦一列に数字を入力したい
Private Sub CommandButton1_Click() Dim n As Integer Dim i As Integer Dim x As Integer For i = 1 To n x = i + 3 n = InputBox("層数の値を入力してください") Cells(3, 1).Value = ("基板") Cells(x, 1).Value = i x = x + 1 Next End Sub 上記のようなマクロを組んだのですが、4行目に1が入ってとまってしまいました。 これを完成させるにはどうしたらいいでしょうか?
- ベストアンサー
- オフィス系ソフト
お礼
ご回答ありがとうございます。 私の質問が不適切で誤ったことでした。 知らぬこととはいえ申し訳ありません。 プロシージャ間での値の引渡し方が分かっていない ためこのような質問をしてしまいました。 1つの解決方法は、広域変数(public)を読み出すことで 対応できそうということが分かりましたが、配列のデータを他の関数で読み出すコードの記述が思いつかないため質問しました。