NAV

Introduction

ようこそチューリップ・プログラミングスクールの自習室へ。 ここでは、Android、VBA、Database、ネットワークなどのトピックについての自習教材を利用できます。

Java言語

Androidアプリの開発は、JavaまたはKotlinで開発します。このページでは Javaの基本文法 について説明します。

変数

変数は、Javaプログラムの実行中にデータを保存する入れ物です。すべての変数には、保持できる値の型と量を指定するデータ型が割り当てられます。また変数は、データのメモリ位置名でもあります。そして、メモリの場所に与えられる名前です。

Javaには、次のようなさまざまな種類の変数があります。

変数説明
String「こんにちは」などのテキストを保存します。文字列の値は二重引用符で囲まれています
int123や-123などの小数点以下のない整数(整数)を格納します。
float19.99や-19.99などの小数点を含む浮動小数点番号を格納します
char「a」や「B」などの単一の文字を格納します。文字の値は単一の引用符で囲まれています
booleantrueまたはfalseの2つの状態の値を格納します。

変数の宣言

変数型 変数名;

int height;
char c;

変数の宣言は次のように記述します。

変数の代入

変数名 = 値;

height = 170;
c = 'a';

変数の代入は次のように記述します。

参考資料

定数

定数は基本的に、値を変更できない変数です。C/C++では、キーワードconstはこれらの定数変数を宣言するために使用されます。Java では、キーワード final を使用します。ただし、ここで導入されたツールは単なるプリミティブ変数ではなく、実際のオブジェクトインスタンスです。

参考資料

クラス

public class Main {
  int x = 5;

  public static void main(String[] args) {
    Main myObj = new Main();
    System.out.println(myObj.x);
  }
}

クラスは、オブジェクトが作成されるユーザー定義の雛形またはプロトタイプです。これは、1つのタイプのすべてのオブジェクトに共通するプロパティまたはメソッドのセットを表します。

  1. クラスは、共通の特性/動作と共通のプロパティ/属性を共有するオブジェクトのセットです。
  2. クラスは現実世界の実体ではありません。オブジェクトが作成されるテンプレート、雛形、またはプロトタイプにすぎません。
  3. クラスはメモリを占有しません。
  4. クラスは、異なるデータ型とメソッドのグループの変数のグループです。

Javaのクラスには以下を含めることができます。

参考資料

オブジェクト

オブジェクトは、オブジェクト指向プログラミングの基本的な単位であり、実際の実体を表しています。典型的なJavaプログラムは、多くのオブジェクトを作成し、ご存知のように、メソッドを呼び出すことによって相互作用します。オブジェクトは以下で構成されています。

参考資料

Import文

import package.JavaClass;
import package.*;

importはJavaキーワードです。インポートステートメントの下のコードで使用するJavaクラスを宣言します。Javaクラスが宣言されると、クラスが属するパッケージを指定せずに、クラス名をコードで使用できます。「*」文字を使用して、パッケージに属するすべてのクラスを宣言します。

参考資料

Package

package com.test.Customer

Javaのパッケージは、クラス、サブパッケージ、およびインターフェイスのグループをカプセル化するメカニズムです。パッケージは例えば次のために使用されます。

参考資料

Android Studio

ディレクトリ構造

Androidの1アプリに対し、通常1つのプロジェクトを作成します。 ここではそのプロジェクトのファイルの構成について、どこに何があるのか説明します。

appフォルダ

アプリに関するソースコードなどすべてのファイルが入っているフォルダです。ソースコードは自分で書くものと、プロジェクトの新規作成時に自動的に生成されるものの二種類があります。

manifestフォルダ

Android Studioで自動生成された、AndroidManifest.xml ファイルが配置されています。このファイルは、アプリに関する重要な情報を Android ビルドツール、Android オペレーティング システム、Google Play に対して説明するものです。 これは、Android OSとアプリケーションの間の仲介者として機能します。

参考資料

javaフォルダ

Javaフォルダには、他のテストファイルを含め、アプリ開発中に作成したすべてのjavaのソースコード(.java)ファイルが含まれています。

resフォルダ

リソースフォルダは、アプリの画像、XMLレイアウト、UI文字列などのすべての非コードソースが含まれています。

assetsフォルダ

アセットは、テキスト、XML、HTML、フォント、音楽、ビデオなどの任意のファイルをアプリケーションに追加する方法を提供します。 Android Studioで新しいプロジェクトを作成すると、最初はプロジェクト内には assets フォルダがありません。 このフォルダには、静的な画像や動画、DBファイルなどを配置します。 この assets フォルダですが、慣例的に app フォルダの直下に配置することが多いようです。

assetsフォルダを作成するには

  1. appフォルダで右クリックすると表示されるメニューより、New → Folder → Assets Folder の順に選択する Assets Folder
  2. 表示されたダイアログで Target Source Set 選びます。開発中は main を選んでください。最後に Finish ボタンを押すとフォルダが作成されます。 Target Source Set

参考資料

Gradle Scripts

Gradleは、ビルド、テスト、デプロイなどを自動化するために使用されるビルドシステム(オープンソース)です。 一連のプログラムを集めたものが、Gradle Scriptsです。

すべてのAndroidプロジェクトには、プロジェクトの.javaファイルと.xmlファイルからapkを生成するためのGradleが必要です。gradleはすべてのソースファイル(javaとXML)を受け取り、適切なツールを適用します。たとえば、Javaファイルをdexファイルに変換し、それらをすべて実際に使用されているapkと呼ばれる単一のファイルに圧縮します。

参考資料

エミュレータ

AndroidStudioで開発中に、開発したアプリを動作させるには実機の他に次の2つがあります。

  1. Andorid Studio 上で動作する エミュレータ
  2. 単体で動作する エミュレータ

実機相当の動作環境をソフトウェアで実現したものをエミュレータと呼びます。 ここでは上記2の単体でも動作する NoxPlayer について、Windowsでの利用を例に説明します。

NoxPlayerとは、AndroidゲームやアプリをWIN・MACで楽しめる無料エミュレーターです。

NoxPlayerのインストール

次のURLにアクセスし、ダウンロードボタンを押し、ダウンロードしてください。 ダウンロードが終わると、「nox_setup_v7.0.3.6_full_intl.exe」のようなファイルができます。exeファイルを起動し、インストールを進めてください。

NoxPlayerの起動

NoxPlayerを起動します。

NoxPlayerを起動するには

  1. メニューより「Nox」を選択します Nox Start
  2. Noxが起動します。 Nox Start
  3. 起動が完了すると、Androidのデスクトップが表示されます。 Nox Start

Andorid Studio で NoxPlayer をエミュレータにする

AndroidStudio のエミュレータで NoxPlayer を選ぶには、次の手順を実行します。 (NoxPlayer が起動した状態でしたら、一度終了させてください)

NoxPlayer をエミュレータにするには

  1. AndroidStudio を起動します
  2. NoxPlayer を起動します
  3. AndroidStudio でエミュレータを選択します Emurator
  4. AndroidStudio でアプリケーションを起動する Hello World

データベース

データベースには色々な種類がありますが、無料で業務用途にも十分耐えうる MySQL についてインストール方法や利用方法を説明します。

MySQLをサービスの提供と利用という切り口で見ると、次の2種類があります。

  1. サービスを提供する「サーバ」機能
  2. サービスを利用する「クライアント」機能

機能についてこの2つに大きく分類し、詳細を説明します。

サーバ

MySQLサーバは、データベース接続・データ入出力などのサービスをクライアントに提供します。

MySQLサーバのインストール方法

  1. まずはじめに、MySQLのインストーラを入手するため、次のURLにアクセスします
    https://dev.mysql.com/downloads/mysql/

  2. OSにWindowsを選び、Go to Download Page ボタンを押します Download

  3. Downloadボタンを押します Download

  4. No thanks,,,を選ぶと、msiファイルがダウンロードされます No Thanks

  5. ダウンロードが終わったら、インストーラーを起動します MSI File

  6. 画面に従ってインストールを進めます。このような画面が出たら、「はい」を選択してください。 Change System

  7. Setup Type を選びます。「Developer Default」を選択してください。 Setup Type

  8. Check Requirements では、Next で次に進みます Check Requirements

  9. 確認メッセージが出たら「Yes」を選びます Message

  10. Executeボタンを押すと、インストールが始まります Start Install

  11. サーバのインストールが終わりました。続いて設定へと進みます。Nextボタンを押してください。 Finished Install

上記のインストールに続いて、サーバの設定を進めます。

MySQLサーバの設定方法

  1. 開始ページです。Nextボタンを押してください。 Start Configuration

  2. サーバのタイプとネットワークについて設定します。Config Typeは「Development Computer」で設定します。 Type And NW

  3. 認証方法について選択し、Nextボタンを押します。 Auth

  4. このページでサーバにアクセスするユーザについて、アカウントと役割について設定します。

    • MySQL Root Password を設定します。(ルートユーザ(root)とは、すべての権限を持つユーザです) Account
  5. 次に、上記画面上の「Add User」ボタンを押して、開発時の接続アカウントやアプリケーションに埋め込むDB接続アカウントを設置します。ここではひとまず開発用の接続アカウントを作成してみましょう。 Account Dev

  6. 次の図のように、ルートとユーザアカウントの作成ができたら、Nextボタンを押します。 Created User

  7. 次に Windows起動時に MySQLサーバがどのような名前で起動するかを設定します。 Windows Service

  8. 最後に、上記設定内容の確認ページが表示されます。「Execute」ボタンを押すことで設定を実行します。 Execute

  9. 設定画完了したら、右下の「Finish」ボタンを押すと画面が閉じます。以上で MySQLnサーバのインストールが完了しました。 Finish

クライアント

TablePlusとは?

TablePlustとは、直感的な GUI ツールを備えたDBクライアントです。2022年時点で英語版しかありませんが、シンプルな操作体系でおすすめです。 MySQL、PostgreSQL、SQLite、Microsoft SQL Server、Amazon Redshift、MariaDB、CockroachDB、Vertica、Redis などの複数のリレーショナル データベースを作成、アクセス、クエリ、編集することができます。

ダウンロード

ダウンロードは、TablePlusの公式ページからできます。 次のリンクを開いてください。

https://tableplus.com/

ページを開くと次のような画面になります。 Windows版であれば「Download for Windows」を選びます。

ダウンロード1

ページを開くと次のような画面になります。 Windows版であれば「Windows 64/32 bit」を選ぶと、インストーラー(exeファイル)のダウンロードが始まります。 ダウンロード1

TablepPlusのインストール

ダウンロードしたインストーラーを起動して、画面に従ってインストールしてください。

DB接続設定

MySQLへのDB接続設定について説明します。

新しい接続の作成は、TablePlus起動後に表示される下図の画面で、「Create a new connection …」を押下します。

Connect

リストが表示されるので「MySQL」を選択します。

DB List

新しい接続を作成します。設定ができればまず「Test」ボタンを押してみましょう。「connection is ok」と表示されれば接続成功です。「Save」ボタンで接続設定を保存してください。

項目説明
Name接続名(任意)
HostDBサーバのIPアドレス
Port3306
UserDB接続ユーザー
PasswordDB接続パスワード

New Connection

「Save」ボタンで保存すると、起動時の画面に接続アイコンが表示されます。 接続アイコンをクリックしてDBを開いてみましょう。

Saved Connection

DBが開きました。接続成功です。

Opened DB

ツールバーの説明

TablePlusの画面上部ツールバーの説明をします。

各部の説明 Refresh

番号説明
1DB接続先を選択します
2変更をキャンセルします
3SQLの実行前に実行のプレビューを表示します
4変更をコミットします
5セーフモードの設定をします
6DBを選択します
7SQLエディタを開きます
8表示中のワークスペースを更新します
9コマンド入力パレット表示
10メニューを表示します

データベースの新規作成

CREATE DATABASE TestDB DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

初めてデータベースを作成する際には、Create Databaseクエリを発行します。

テーブルの新規作成

CREATE TABLE `test` (
  `id` int NOT NULL,
  `name` varchar(45) COLLATE utf8mb4_general_ci DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

画面左側にある「Tables」の上で右クリックすると、ショートカットメニューが表示されます。 New > Table の順に項目を選択すると、テーブルの新規作成画面になります。
この画面城の Name で テーブル名を設定します。

New Table

このように画面で操作もできますが、Create Tableクエリの実行でテーブルを新規作成することもできます。

テーブルへの列の追加

初めてテーブルを作った時には、画面上にあるように、先頭の列が初期値として追加されていますので、列名などを設定してください。 Table Structure

2列目以降は、画面下部の「+Column」ボタンを押すと、新しい列が追加されますので、同様に列名などを設定してください。 Table Structure

テーブルへの列の変更

既存のテーブルの列名や列の属性を変更したい場合には、画面左側よりテーブル名を選択後、画面下の「Structure」ボタンを選択してください。

テーブルの検索

テーブル内のデータを検索するには、SQLのSelect文を実行します。

全ての列を取得するには

selectの後に * を指定します。

id が 10 のレコードについて 全ての列 を取得

select * from Customer where id = 10;

idが 2以上5以下 のレコードを全列取得

select * from Customer where  2 >= id and id <= 5;
select * from Customer where id between 2 and 5;

一部の列を取得するには

selectの後に 取得したい列名 を指定します。

id が 10 のレコードについて name列 を取得

select `name` from Customer where id = 10;

idが 2以上5以下 であるレコードの name列 のみ取得

select `name` from Customer where  2 >= id and id <= 5;
select `name` from Customer where id between 2 and 5;

画面

Edit Column

操作

番号説明
1対象テーブルを選択します
2「Structure」ボタンを押します

CSVインポート

TablePlusを使って、DBにCSVファイルからテーブルにインポートする手順を説明します。

  1. TablePlusでDBを開きます。

Open DB

  1. 画面左側にある「Tables」で右クリックします。「Import」>「From CSV..」を順に選択します。

Open DB

  1. CSVファイルを選択し開きます

Open DB

  1. インポートダイアログが表示されるので、「Create new table」を選びます。これを選ぶとインポートと同時にテーブルをファイル名で作成します。チェックをOFFにすると、既存のテーブルにインポートできます。最後に「Import」ボタンを押すと、インポートが始まります。

Open DB

  1. インポートが成功すると次のダイアログが表示されます。

Success Import

CSVエクスポート

TablePlusを使って、DBのテーブルからCSVファイルにエクスポートする手順を説明します。

  1. TablePlusでDBを開きます。

Open DB

  1. 画面左側にある「Tables」で右クリックします。「Export」を選択します。

Export Menu

  1. ダイアログが表示されるので、内容を確認し「Export..」ボタンを押します。

Export Button

  1. CSVファイルの保存先を選択します。

Export Save Dialog

  1. エクスポートが成功すると次のダイアログが表示されます。

Success Export

エラー事例集

Can’t connect to MySQL .. と表示される

このような画面が表示されて接続できない場合、接続設定の Host の IPアドレスが間違っている可能性があります。

Cant Connect

接続の編集画面で、「Host」の IPアドレス を変えてみましょう。HostのIPアドレスは、DBサーバーをインストールしたコンピュータのIPアドレスです。

TablePlusを起動したら表示される画面で、作成済みの接続を右クリックします。そして「Edit」を選択します。

Edit Connect

接続の編集画面が表示されるので、HostのIPを変更します。 変更ができたら、ダイアログ下部の「Test」を押してください。 New Connection

下図のように「connection is ok」のメッセージが表示されたら、接続成功です。 メッセージダイアログの「OK」ボタンをしてダイアログを閉じます。 最後に上記編集画面にある「Save」で設定を保存し、「Connect」でDBに接続します。 Success Import

Excel VBA

ExcelVBAについて、MySQLとの接続を中心に説明します。

ExcelとMySQLはどうやって接続されるのか?

ExcelVBAからMySQLのデータベースへ接続するには、ODBCという仕組みを使います。

ODBC ドライバーは、DBMS データベースへの標準的で一様な SQL アクセスをアプリケーション・プログラムに提供します。 ODBC ドライバーによって、アプリケーション・プログラムの設計者とユーザーは、 各種の DBMS システム間での SQL の相違を無視することができます。(参考)

ODBCドライバーは、ExcelVBAとDBの間に立ってデータのやり取りをする存在です。 動作させるためには、次の条件を満たす必要があります。

ODBC接続とは

ODBC(Open Database Connectivity)とは、アプリケーションがデータベース管理システム(DBMS)などに接続し、データの取得や書き込み、操作などを行うルールです。このルールはマイクロソフトが定めています。

MySQLに接続するには、MySQL用のODBCドライバーが必要です。DBに接続するアプリケーションは、このODBCという仕組みを利用し、DBにアクセスしデータを入出力します。 ODBC Connection

この文書では、32bit版のMySQL用ODBCドライバーのインストールについて説明します。

アンインストール

すでに64bit版のODBCがインストールされている場合、アンインストールしてください。

手順: コントロールパネルを開き「アプリ」を選択します。 Contorl Panel

「odbc」と入力し検索すると、インストール済みのドライバーが表示されるので、アンインストールしてください。 Contorl Panel

確認ダイアログで「はい」を選びます。 Contorl Panel

ODBC接続の準備

MySQLのDBとODBC接続をするため、MySQLのサイトよりODBCドライバーをダウンロード、インストールします。 MySQL用ODBCドライバーは次のページよりダウンロードできます。

ダウンロード

Download

  1. Select Operating System で、「Microsoft Windwos」を選びます
  2. Select OS Version で、「x86, 32bit」を選びます
  3. Other Downloads の、「MSI Installer」にある「ダウンロード」ボタンを押します
  4. ダウンロードページに移動するので(Oracleのアカウントがない場合には)、「No thanks, just start my download.」を選ぶとダウンロードが始まる

ODBCドライバーのインストール

上記ODCBドライバーのダウンロードができたら、次に開発PC(Windows)にインストールしてみましょう。

  1. .msi ファイルを開きます。 MSI File

  2. セキュリティの警告ダイアログが出た場合、「実行」を選択します。 MSI File

  1. 次のような画面になります。Nextを押してください。 Start

  2. ライセンスを確認し Nextを押してください。 License

  3. Setup type で Complete を選び Next 押してください。 Setup type

  4. インストール内容を確認し Next 押してください。 Ready

  5. インストールが終了しました。Finishボタンを押してください。 Finish

これで ODBCドライバーがインストールできました。

インストールしたODBCドライバーの確認

インストールしたODBCドライバーが、32bit版か64bit版かを確認してみましょう。

  1. Windowsのスタートボタンを押して「odbc」と入力してください
  2. ODBCデータソースの 32bit と 64bit 版が表示されます Ready
  3. それぞれ起動します Ready

DBへのODBC接続の実例

アプリケーションからのODBC接続を使ってMySQLに接続する方法を2つご紹介します。

  1. DSNを使わない接続
  2. DSNを使う接続

下記サンプルはIDなど必要な部分を書き換えてエディタでファイルに保存し、アイコンをダブルクリックして実行してみましょう。
あらかじめ testDB が必要です。次の資料よりそれぞれ事前に作成してください。

「testDB」テーブル:
https://tulipsoft.com/reference/docs/sql/createdb/
「test」テーブル:
https://tulipsoft.com/reference/docs/sql/createtable/

DSNを使わない接続

Filename : bydriver.vbs

Option Explicit

Dim oConn, oRs
Dim qry, connectstr
Dim db_name, db_username, db_userpassword
Dim db_server,fieldname,tablename

db_server = "localhost"
db_name = "testdb"
db_username = "usrname"
db_userpassword = "password"
fieldname = "name"
tablename = "test"

connectstr = "Driver={MySQL ODBC 8.0 Unicode Driver};SERVER=" & db_server & ";DATABASE=" & db_name & ";UID=" & db_username & ";PWD=" & db_userpassword

Set oConn = CreateObject("ADODB.Connection")
oConn.Open connectstr

qry = "SELECT * FROM " & tablename

Set oRS = oConn.Execute(qry)

if not oRS.EOF then
  while not oRS.EOF
    msgbox ucase(fieldname) & ": " & oRs.Fields(fieldname) 
    oRS.movenext
  wend
  oRS.close
end if

Set oRs = nothing
Set oConn = nothing

こちらは、IDやパスワードなどDB接続に必要なDB接続文字列について、全てコードに記述し実行する方法です。

下記はサンプルコードです。コードを実行すると、コード内に指定された DriverやServer情報などが接続文字列に追加されます。その後、DBに接続し指定のテーブルよりデータを取得しメッセージボックスで表示します。

15行目で接続文字列を変数にセットし、これをDB接続時に利用しています。

参考資料

DSNを使う接続

DSNを呼び出す方法とは、あらかじめ保存しておいたDSNをコード実行時に呼び出す方法です。 上記の 接続文字列を全てコードに記述との違いは次の通りです。

項目DSNを使わない接続DSNを使う接続
DB接続文字列全てコードに書くDSNに書き呼び出す
アプリケーション間での共有×

DSNを使わない接続は、アプリケーション内にDB接続文字列を全て書いて埋め込んでいるのに対し、DSNを使う方法ではあらかじめアプリケーション外のDSNに保存しておいたものを読み込みます。 DSNを使う接続は、コンピュータ上の複数のアプリケーションで使いまわすことができます。

DSNの保存

DSN(Data Source Name)とは、IDやパスワードなどDB接続に必要なDB接続文字列についてあらかじめ保存しておいたものです。 DSNを使ったDB接続をするために、DSNを保存する方法をご紹介します。

DSNを保存するには、Windowsボタンを押して「odbc」と検索し、表示された「ODBCデータソース(32ビット)」を選択します。
(あらかじめ、上記の ODBCの 接続準備 を実行しておいてください) ODBC Data Source

「ODBCデータソース(32ビット)」が起動すると、次のような画面になります。 「システムDSN」タブを選び、「追加」ボタンを押してください。 System DSN

「MySQL ODBC 8.0 Unicode Driver」を選択し、「完了」ボタンを押してください。 New DataSource

接続文字列の新規登録画面が表示されますので、入力し「OK」ボタンを押してください。

  1. Data Source Name:アプリケーションから呼び出す際にコードに記述するDSNの名前です。分かりやすい名前に自由に付けてください。
  2. Server:MySQLのサーバが起動しているコンピュータのIPアドレスです。
  3. User:DB接続時のユーザIDです。DBサーバで設定したもものを記載します。
  4. Password:DB接続時のパスワードです。DBサーバで設定したもものを記載します。
  5. Database:接続先のDB名です。DBサーバに作成したものを記載します。 Connection Palameter

OKボタンを押すと入力した内容が登録されています。この例では保存された DSN は「mysql-dsn」です。この名前でコードより DSN を指定すると保存した内容が接続文字列にセットされます。 DSN Saved

🍵以上で、DSNの保存ができました。

DSNを呼び出してODBC接続する

Filename : bydsn.vbs

Option Explicit
dim strConn
strConn = "DSN=mysql-dsn"

dim oConn
Set oConn = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")

oConn.ConnectionString = strConn
oConn.Open

dim rs
rs.Open "SELECT * from test where id = 2", oConn
MsgBox(rs.Fields("name"))

rs.Close
set rs = Nothing
oConn.Close
set oConn = Nothing

上記で保存したDSNを使ってDB接続をするサンプルコードを示します。

3行目であらかじめ保存しておいた DSN を変数に保存します。
9行目で保存した DSN を接続文字列としセットしています。
DB接続に成功すると、13行目でレコードを取得しています。

参考資料