第7講 配列

第4話 1次元配列をローカル配列に変更する
wqer
をローカル1次元配列を利用して実現するプログラム例
Private Sub CommandButton1_Click()
  
  Dim a As Integer, cn As Integer
  Dim s(3000) As Integer
  cn = 2
  s(0) = 2
  s(1) = 3
  For a = 1 To 10000
    h = f(a, s())
    Cells(3 + a, 1) = a
    If h = 1 Then
      Cells(3 + a, 2) = "素数"
      If a > 3 Then
        s(cn) = a
        cn = cn + 1
      End If
    Else
      Cells(3 + a, 2) = "非素数"
    End If
  Next
  
  For i = 0 To 3000
    If s(i) = 0 Then Exit Sub
    Cells(4 + i, 4) = s(i)
  Next

End Sub
Function f(a As Integer, s() As Integer)

  Dim i As Integer, o As Integer
  If a = 1 Then
    f = 0
    Exit Function
  End If
  If a = 2 Then
    f = 1
    Exit Function
  End If
  If a Mod 2 = 0 Then
    f = 0
    Exit Function
  End If
  o = Int(Sqr(a))
  For i = 1 To 3000
    If s(i) > o Then
      f = 1
      Exit Function
    End If
    If a Mod s(i) = 0 Then
      f = 0
      Exit Function
    End If
  Next
  f = 1
  
End Function

Private Sub CommandButton2_Click()
  
  Rows("4:20000").Select
  Selection.ClearContents
  Cells(1, 1).Select
  
End Sub
参考ダウンロード添付ファイル

さて、次は2次元配列h(10,10)を宣言して、
h(0,0)=1,h(0,1)=2,・・・,h(0,9)=10
h(1,0)=11,h(1,1)=12,・・・,h(1,9)=20
h(2,0)=21,h(2,1)=22,・・・,h(2,9)=30
        ・
        ・
        ・
h(9,0)=91,h(9,1)=92,・・・,h(9,9)=100
と代入して、これを利用してエクセルシートに

と表示させるマクロを考えましょう。
今回も、最初はグローバル配列
Dim h(10, 10) As Integer
Private Sub CommandButton1_Click()
          ・
          ・
          ・
を定義してそれを利用することにしましょう。
尚、後の学習課題である
2次元For文
  For i = 0 To 9
    For j = 0 To 9
      **
    Next
  Next
先取りしておきます。
これは、次のように動きます。
i = 0 のとき、
j = 0 → j = 1 →・・・→j = 9
i = 1 のとき、
j = 0 → j = 1 →・・・→j = 9
i = 2 のとき、
j = 0 → j = 1 →・・・→j = 9
       ・
       ・
       ・
i = 9 のとき、
j = 0 → j = 1 →・・・→j = 9
動きを表にしますと、

0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9 10
1 11 12 13 14 15 16 17 18 19 20
2 21 22 23 24 25 26 27 28 29 30
3 31 32 33 34 35 36 37 38 39 40
4 41 42 43 44 45 46 47 48 49 50
5 51 52 53 54 55 56 57 58 59 60
6 61 62 63 64 65 66 67 68 69 70
7 71 72 73 74 75 76 77 78 79 80
8 81 82 83 84 85 86 87 88 89 90
9 91 92 93 94 95 96 97 98 99 100

となります。がiに、がjに対応しています。



第3話へ 第5話へ

004


eclipse c++ 入門
魔方陣 数独で学ぶ VBA 入門
数独のシンプルな解き方・簡単な解法の研究
vc++講義へ
excel 2013 2010 2007 vba入門へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座へ
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座へ
専門用語なしの C言語 C++ 入門(Visual C++ 2010で学ぶ C言語 C++ 入門)
専門用語なしの excel vba マクロ 入門 2013 2010 2007 対応講義 第1部
eclipse java 入門へ
excel 2016 vba 入門へ第2部へ
小学生からエンジニアまでのRuby入門へ
小学生からエンジニアまでのC言語入門 基礎から応用まで
本サイトトップへ