エクセル -> VBA

配列

基本

配列の定義
Dim 曜日(6) As String        '# Indexは 0〜6 要素数は7個
Dim 曜日(1 To 7) As String   '# Indexは 1〜7 要素数は7個

配列の再定義
Dim 曜日() As String         '# Indexを指定せず宣言のみする 1回のみ
ReDim 曜日(6) As String      '# Indexを宣言の後に指定する
                                複数回可能 要素数を変更することも出来る。

Dim 曜日() As String         '# 配列を宣言し
ReDim 曜日(6) As String      '# 要素を指定
ReDim 曜日(1 To 7) As String '# 要素を再指定(配列は全てクリアされる)

値を保持した状態で要素を変更する場合
ReDim 年月(1 To 50)  '# 最初の設定
ReDim 年月(1 To 100) '# ○再設定
ReDim 年月(100)      '# ×再設定 最初の設定で要素0 がないので再定義できない

配列の初期化
Erase 曜日

配列を関数の戻り値として使用する場合

メイン
Sub Main()
  Dim 番地() As Integer
  
  '# 関数の戻り値を配列に指定する。型を合わせておく
  番地 = 番地取得()
End Sub
関数
Public Function 番地取得()
  Dim 番地(2) As Integer
  番地(0) = カラム
  番地(1) = 行

  '# 関数の戻り値を配列に指定する
  番地取得 = 番地
End Function

配列を関数へ渡す場合

メイン
Sub Main()
  Dim 番地(2) As Integer
  call 番地設定(番地)
End Sub
関数

参照渡しする場合
Public Function 番地設定(ByRef 番地() as Integer)
  Msgbox("行:" & 番地(0))
  Msgbox("列:" & 番地(1))
End Function

参照渡しない場合は
Public Function 番地設定(番地)

配列

Dim ファイル名(7) As String
Dim 曜日リスト As String
Dim ベースファイル名 As String

ベースファイル名 = "集計_"

曜日リスト = "Mon,Tue,Wed,Thu,Fri,Sat,Sun"

'# カンマ区切りデータを配列に格納する #
曜日配列 = Split(曜日リスト, ",")

For i = 0 To UBound(曜日配列)
  ファイル名(i) = ベースファイル名 & 曜日配列(i) & ".xls"
Next i

'# ファイル名を書き出す #
For i = 0 To 6
  Cells(i + 1, 1) = ファイル名(i)
Next i

結果


      Document-Folder          一覧
HP-UX
HULFT
JAVA
JP1
JavaScript
Linux
MAC
PHP
Perl
Python
Ruby
SOA
Solaris
Unix全般
Windows
XML
エクセル
スタイルシート
セキュリティー
データベース
ネットワーク
パソコン
ブラウザ
プログラム構文
仮想化
          RSS-Folder
ニュース
   アットマーク・アイティ(@IT)
   シンクイット(ThinkIT)
   インターネットコム
   インターネットウォッチ
   日経IT-Pro
   日経パソコン
   CNET Japan
   ZD-NetJapan
   MYCOM
   RBB-Today
ベンダー
   日本IBM
   日本HP
   サンマイクロシステムズ
   NEC
   富士通
   日立
ソフトウェア
   マイクロソフト
   トレンドマイクロ
   オラクル
   サイボウズ
   Mozilla
   野村総合研究所
   (その他ソフトウェア企業)
更新履歴 一覧
 07/08 PERF
プログラム構文
 07/07 PERF
プログラム構文
 06/25 オブジェクトプログラミング2
Perl>サンプル
 07/12 クローン作成
仮想化>vCenter
 07/12 vyatta設定
ネットワーク>vyatta
 07/12 vyattaインストール
ネットワーク>vyatta
 07/12 リポジトリサーバ
Linux>サーバ構築
 07/05 VMwareのインストール
仮想化>VMware
 07/05 PXEブート
仮想化>KVM
 07/01 DHCPでのPXEブート
仮想化>KVM
 06/27 qcow2仮想DISK作成
仮想化>KVM
 06/13 NWの設定
仮想化>VMwareEsxi
 06/13 IPアドレスの変更
仮想化>VMwareEsxi
 06/12 自動ssh
Unix全般>シェル>Bash
 06/12 diffプログラミング
Python
Google