忍者ブログ
気ままな一人暮らしの、ささやかな日常
美術鑑賞からプログラムのコードまで、思いつくままに思いついた事を書いています。
[4889]  [4888]  [4887]  [4886]  [4885]  [4884]  [4883]  [4882]  [4881]  [4880]  [4878
ざっくざく > パソコン > Access講座受講メモ:後編
ACCESS講座
こんにちは、和美です。

仕事でなぜかAccessを使わされる羽目になったものの、全く理解が追いついていません。
という話を臨時上司にしたら、就業時間外にAccessの講座を開いてもらうことになりました。

そんな講座のまとめ記事、後編です。
前編はこちら

【 目次 】

  1. 初めに
  2. Functionと変数
  3. 配列
  4. Finally
  5. データの中身
  6. 最後に

1. 初めに

和美の知識はExcel、Java、SQL、全てが中途半端に曖昧です。
そして、あちこちに話が飛びます。
今回はAccessVBAの作り方がメインです。

2. Functionと変数

まずは用語から。
普通のVBAは 『 Sub ○○( ) 』 で始まり、『 End sub 』で終わります。

Sub 値貼り付け()

With ActiveSheet.UsedRange
.ClearFormats
.Value = .Value

End With

End Sub


などですね。
( 実際にExcelVBAで使ったコードです )
このSubは、Subだけで完結したプログラムです。
他にFunctiontionというものがあります。
こちらはSubの中で 『 Call ○○(△△)』のように呼び出されるので、Functionだけでは動きません。
括弧の△△に数字などを入れて送ると、計算など加工して結果を返してくれるプログラムです。
臨時上司など、一般的には 「 関数を独自に作れる 」 と表現されることが多いです。

繰り返しなどに使う変数は、VBAの場合Dimを使って、
Dim i As Integer
のように表記します。
変数iは数字ですよ、という意味の宣言ですね。
このDimはプライベート変数と呼ばれ、一つのSubの中だけで使えるそうです。
( 宣言だけならDim iでも大丈夫です )

Sub 文字列結合()

Dim i As Integer 'ループ
Dim bre2 As String 'B列
Dim cre2 As String 'C列

For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
bre2 = Cells(i, 2)
cre2 = Cells(i, 3)

Cells(i, 2) = bre2 & cre2

Next i

End Sub


一つのマクロの中にSubはいくつでも書けますが、次のSubの中で同じ変数iを使う時はもう一度宣言する必要がありますし、Sub毎にリセットされるので数字などの内容は引き継がれません。
…… 繰り返しに使う変数は普通使い回さないので特殊ですが。
上に挙げた例だと、bre2やcre2 ( String = 文字列 ) も変数です。

このプライベート変数に対して、グローバル変数というのがあるそうです。
Pablic bre2 As String
のように宣言すると、全体で共通の変数として使えるそうです。
この変数bre2は、いくつSubを作っても、一度の宣言だけで内容が引き継がれます。

…… 習ったばかりなので、実際に使ったことはありませんが ……。

3. 配列

プログラミングには配列という仕組みがあります。

変数の塊のような仕組みですが、和美も苦手な上にVBAでは使ったことがないので説明は省略します。
け、検索してください ……。
Dim haire2(5) As String
のように宣言すると文字が入れられて、それぞれの文字は番号で呼び出せます。

5というのは上限値で、VBAの場合は0から始まるそう。
0から5までなので合計6種類ですね。
プログラミング言語によって0からと1からの二種類があるので注意。
ちなみに過去に勉強したJavaも同じく0からなので、1から始まる言語は知りません。

4. Finally

実際にマクロを見たのはAccessVBAのみですが、ExcelVBAでも同じようです。

Finally:
Set ○○ Nothing


という使い方をします。
○○の中に入るのはファイル名で、処理の最後に使います。
Javaにも似たような命令があったような。
VBAが終わってもAccessが閉じられるまでメモリが開放されません。
いつまでも放置しておくとパソコンの動きが遅くなる可能性があるので、使い終わったメモリを破棄する命令です。

5. データの種類と中身

AccessとExcel、両方ともVBAの機能がありますが、それぞれ扱うデータの種類が違います。
Accessはメインがデータベース、取り込める外部データとしてcsvやテキストなどがあります。
Excelはメインが行、列とセル、取り込める外部データとしてテキストなどがあります。

6. 最後に


Accessは基本的にVBAではなく最初から用意されているクエリを使うべき。
全てVBAで処理しようとする人は、上級者ではなく 「 データベースの設計能力がない人 」 です。
という旨の文章を見つけて心から同意しました。
参考元サイト:別のテーブルへレコードを追加する:Ac2002-VBAの沼

ですが、VBAはプログラミング言語の中で一番簡単な部類ですし、臨時上司曰く、SEにとっては 「 できて当たり前の基礎知識のうちの一つ 」 とのこと。
そして、見ず知らずの他人が作った基本構造が悪いデータベースを作り直せるなら、話はもっと簡単です。
…… 頑張るしかなさそうですね。

最終回にAccessのフォームの記事を予定していたのですが、書いたメモをまとめないまま半年以上経ってしまったので断念します。
そのうちしれっと全三回に変わっているかもしれませんが、期待はしないでください。
PR
【 この記事へコメント 】
名前
コメントタイトル
URL
本文
削除用パスワード
累計アクセス数
アクセスカウンター
レコメンド
プロフィール
書いている人:七海 和美
紹介:
更新少な目なサイトの1コンテンツだったはずが、独立コンテンツに。
PV数より共感が欲しい。
忍者ブログ [PR]