【Java入門】プロジェクトからクラスまでを作成してみよう
Eclipseをインストールしたのは良いけど一体どうやって使うんだ?
確かに初めて見るとどこで何をすれば良いかサッパリだと思います。
僕自身、初めて見たときはどうして良いのか分からずフリーズした記憶があります。
なんならプログラム作る前から「Java無理かも」とか思ったりもしました。
とはいえ、せっかくインストールしたので使わなきゃ勿体無い(貧乏性)。
スタートラインに立たずして終わるのはいかがなものかと思うのです。
順を追っていけば出来るので1つずつ見ていきましょう。
目次
プロジェクトの作成
作成するプログラムは、「プロジェクト」という単位で格納されるので、まずはプロジェクトを早速作ってみましょう。
「ファイル」→「新規」→「Javaプロジェクト」
プロジェクト名には「test_01」と付けました。
パッケージを作成する
「プロジェクト」の次は「パッケージ」とかと聞いたことはある言葉だけど意味が分からない用語が飛び出してクラクラしますよね。
そんなパッケージはクラス(プログラム)を格納するためのものです。
混乱している人は「プロジェクトの中にパッケージがある」とイメージすると良いかと思います。
そんなパッケージを作成するのも難しい作業はなく、
作成したプロジェクト「test_01」のツリーを展開
「src」を右クリック「新規」→「パッケージ」を選択。
名前を付けて完了です。「list_01」と名付けました。
クラスの作成
最後にクラスを作成しましょう。
プロジェクトの中にパッケージがあって、更にその中にクラスがある、と。
クラスはメソッドを記述するためのもので、メソッドとは一連の命令文のかたまりのことです。
お察しの通り、ようやくプログラミングをする場所へ辿り着けました。
作り方は先程作った「list_01」を右クリックし、「新規」→「クラス」です。
念の為の注意として、パッケージが「list_01」になっていることや、メソッド・スタブのチェックが全て外れていることを確認して下さい。
(画像は「継承された…」にチェックが入っていたので後ほど外しました)
「完了」を押下すると
無事に作成されます。
今回はこれにて終了です。お疲れ様でした。
package list_01;
public class HelloJavaWorld {
// 次回はここに色々記述してみましょう
}
Javaでは「//」を入力することでコメントを残せます。
おわりに
最後に「ファイル」から「保管」をすることを忘れずにしましょう。
【Java入門】Eclipseをインストールしてみよう
HTMLならテキストなどのエディターの拡張子を変えてあげる。VBAならExcelにてVBEを開くなどプログラムを書く場所がそれぞれあるわけですが、Javaにも勿論あって、Javaの開発環境を構築するにはEclipseという統合開発環境をインストールします。(Eclipse→エクリプス/統合開発環境→IDEとも呼ぶ)
ちなみにEclipseのような統合開発環境ソフトを使用しないで開発する場合、コマンドプロンプトでコンパイルや実行の操作をするのですが効率が悪いです。
そんなEclipseは無料でダウンロードし、誰でも利用できるので初期費用無しで開発のお勉強ができちゃうのです。有難いですね。
では早速やってみよう。
Eclipse 日本語化 | MergeDoc Project
リンク先からインストールできます。
「Eclipse X.X ~」の「X.X」が新しいものをインストールします。
画像の場合は「4.7」が最新(2017/07/16)なのでそちらを選択します。
Full EditionとStandard Editionの二択を迫られるのですが、各言語の処理系も含まれるので特に理由もないしFull Editionのインストール。
そして解凍。
eclipseの中にある「eclipse.exe」を実行しましょう。
解凍に時間がかかるのでお菓子でも食べながらのんびり待ちましょう。
早速exeをダブルクリックして起動してみましょう。
起動するとワークスペースについて聞かれます。
ワークスペースって何だよ!となるかもしれませんが、つまるところアプリケーションのソースファイルや設定ファイルなどを保存するフォルダなのでデフォルトでもよし、変更してもよし、です。
これにて終了。
お疲れ様でした!
【VBA】演算子について
計算に使う+やら-のことを演算子というのだけれども、よく使うので簡単にまとめておこうと思います。
目次
演算子のあれこれ
+
言わずと知れた足し算。「a = b + c」であればbとcを足した値をaに代入となります。
-
こちらは引き算。「a = b - c」であればbからcを引いた値をaに代入となります。
*
こちらは掛け算。「a = b * c」であればbとcを掛けた値をaに代入となります。
初めて計算をした際にキーボードを見て「掛け算どこー?」となったことがある人は多いはず。
^
べき乗。「a = b ^ c」であればbのc乗をaに代入となります。
/
割り算。「a = b / c」であればbをcで割った値をaに代入となります。この時の値は浮動小数点数。こちらも掛け算同様、初めて計算をした際にキーボードを見て「割り算どこー?」となったことがある人は多いはず。
ちなみにcが0の場合は実行時エラーが発生します。
浮動小数点数について書こうと思ったのですが、どうにも簡単にまとめるための言語能力が僕には不足しているので申し訳ないのですがここでは割愛します。
¥
割り算。「a = b ¥ c」であればbをcで割った値をaに代入となります。この時の値は整数値。/同様、cが0の場合は実行時エラーが発生します。
Mod
余りです。「a = b Mod c」であればbをcで割った際の余りをaに代入となります。
=
「a = b」であればbの値をaに代入となります。
試しにやってみよう
Sub test()
MsgBox 5 + 5
MsgBox 5 - 5
MsgBox 5 * 5
MsgBox 5 ^ 5
MsgBox 5 / 5
MsgBox 5 \ 2
MsgBox 5 Mod 2
End Sub
上記を実行すると計算された値がメッセージボックスに表示されます。
演算子の紹介で代入を使っているのでせっかくの機会なので書いてみます。
Sub test()
Dim a As Integer
a = 700
MsgBox a
a = a + 77
MsgBox a
End Sub
実行するとまず「700」が表示され、2回目のメッセージボックスで「777」と表示されます。
おわりに
近くに電卓がない、スマホの電卓を使うのが面倒、ファイル名指定からの「calc」で電卓開くのが面倒…
【VBA】処理速度を上げるApplication.ScreenUpdating = False
スマホやPCでWEBページを見ている際、なんならアプリの処理が遅くてイライラすることありますよね。
ちなみに僕のスマホは通信制限が月2GBとか鬼のようなプランなので大体毎月中旬から泣いてます。
VBAではコードで処理速度を速くしてくれるコードがあるので覚えておくととても便利なんのでご紹介します。
目次
1行目に書くApplication.ScreenUpdating = False
直訳すると「Excelの画面更新を停止せよ」という命令文です。
抑制(False)、復活(True)するもので、今回のように抑制(False)されている間は画面が全く更新されません。
更新されないから処理の速度が上がるというわけです。
ちなみに途中で画面更新が必要になる場合は途中に復活を挟むこともできます。逆も然りです。
長々と入力するのが大変?
ご存知の方も多いかと思いますがVBAでは入力候補のリストが出てくるのでフル入力しなくてOKです。
ちなみに入力候補リストを出すショートカット
Ctrl + Space
入力候補が出たら、例えば「Application」は、「ap」という2文字を入力すれば2つ目の候補に出てきます。
マウスに手を移すのは煩わしいので「↓(キー)」で選択し、Tabを押すと入力補完されます。
続けて「.(ドット)」
↓Tab不要
「sc」(ScreenUpdatingは候補の一番上)
↓Tab
「=」「↓(Falseが一番上にある)」
これで一瞬で入力が完了します。
長いし面倒かもしれませんが最初はゆっくり慣れてもらえれば良いかと。
この入力補助については今回に限らず、よく使いますのでこちらも習慣にしてしまいましょう。
入力補助を使うメリット
きちんと書いているとツールを作る上では作業効率が下がります。
入力補助の機能を使うと
「フル入力するのが面倒なくらい長いやつを瞬殺できる(今回のApplicationとか)」
「手入力で起こりがちなスペルミスなどが発生しなくなる(ScreenUpdatingをScreenUpdateと間違えたり)」
などのメリットがあります。
まとめ
Sub test()
Application.ScreenUpdating = False
End Sub
これが基本形体と覚えてしまいましょう。
英単語覚えるのが苦手だからVBAも覚えられない…という人も「Ctrl + Space」を使えばスペル自体はうる覚えでも大丈夫。
【VBA】気遣いのあるプログラムで嫌がられないようにしよう
とりあえず手を動かしながら慣れていくのが一番ではあるのですが、ただ書くのではなく見やすい書き方を身に付けた方が良いかと思います。
自分ひとりで行うものなら何でも良いんですけど仕事上共有を免れない場合は「汚いコード書くんだよなぁ…」とか言われないようにしたいものです。
とはいえ別に難しいものではなく気遣う心さえあれば問題ないんですけどね。
ではいってみよう。
目次
プロシージャ
これまでMsgBoxを用いたコードを書いたりしていましたが、実は「Sub~End Sub」の間に記述したコードのかたまりのことを言っています。
プロシージャ自体「手続き」という意味を持っていますが、実行したい処理の「手順書」というイメージを持つと分かり易いかと思います。
PCに「こういう手順でこういう処理をしてくれ!」とかそんな感じです。
SubプロシージャやFunctionプロシージャもありますが、とりあえずはイメージだけで良いと思います。
プロシージャ名のルール
「Sub test()」の場合「test」がプロシージャ名になるのですが、ルールがあるので余裕のある人は覚えておくと良いかと。
勉強中でもつい参考書の例に合わせるのが嫌で自分で名前を付けたりしちゃう人がいますが、ルールを知らないとエラーが出て涙することになります。
ルールといっても難しいものではなく「英数字」「ひらがな」「カタカナ」「漢字」「_(アンダースコア)」が使えますよってだけなんですけど、先頭文字に「数字」「_」は使えないのが肝かと。
つまり「test_01」はOKでも「01_test」や「_test」は使えないということです。
訳のわからない名前を付けると後から見直したり人に共有した際に困ったり困らせたりします。
インデント
例えば
Sub test()
MsgBox "インデントって何じゃ"
End Sub
「Sub」と「End Sub」の書き始めの位置は同じなのに「MsgBox」だけTabキーでスペースを入れています。
このスペースのことをインデントって言います。
なんでインデントを入れるかというと単純に見やすくなるからです。
Sub test()
MsgBox "インデントって何じゃ"
End Sub
こうなってると3行ですら読みにくいですよね。
長すぎるコードは改行して見やすくしたい
VBAでは改行までを1つのステートメントと見るのですが、次の行に続けたいこともあるかと思います。
そういう時は「 _(半角スペースとアンダーバー)」を使えばいけます。
例えば
Sub test()
MsgBox "インデントって何じゃ"
End Sub
上記のコードを
Sub test()
MsgBox _
"インデントって何じゃ"
End Sub
こんなふうに書くことができます。
コメントを付けたい
何がどこでどうなっているのか確認するのってアルファベットの羅列の中で行うのって結構重労働ですよね。
コード見た瞬間どんな処理を行っているのか判断できるような人には縁のない話かもしれませんが、共有することを前提としているのであればコメントは必須かと。
共有しなくても後々改修する際に何を思って作ったのか分からなくなることもあるのでやっぱりあると便利。というか見やすい。
書き方は「'」を使うだけ。
例えば…
Sub test2()
Dim a As Integer
Dim b As Integer
Dim c As Integer
a = 1
b = 2
c = 3
MsgBox a
End Sub
これをいきなり見せられても「なんでaしか表示しないのにbとcの変数を用意しているんだ?」とか思う訳です。
Sub test2()
Dim a As Integer '試験用変数
Dim b As Integer '上期はbを使う
Dim c As Integer '下期はcを使う
a = 1
b = 2
c = 3
MsgBox a
End Sub
コメントが書いてあれば「使用する時はMsgBox aのaをbに変えてあげれば良いのか」と分かるわけです。
Sub test2()
Dim a As Integer '試験用変数
'Dim b As Integer '上期はbを使う
'Dim c As Integer '下期はcを使う
a = 1
'b = 2
'c = 3
MsgBox a
End Sub
邪魔であれば行ごとコメントに変えてしまうとか。
bとcの変数の宣言をしている行をコメントにしてしまっているので下の「b = 2」「c = 3」もコメントにしておかないと「変数の宣言がないのにいきなりb=とかc=とか言われても困るんですけど?」的なエラーが出るのでコメント化する際はご注意を。
まとめ
変な癖が付く前に見やすく改修しやすい書き方を身に付けましょう。
「読みにくいから書き方変えてくんない?」とか「あいつの書いたの読みにくいから一緒に組むの嫌なんだよなぁ」とか言われるの悲しいじゃないですか。
とかなんとか言って僕自身も結構テキトーに書くから共有を求められて焦って直したりしているわけですが…
昔条件分岐のコメントで「あっち向いてホイ!」とか書いてて直すのを忘れて提出したのはいい思い出。
プロシージャ名や変数をアニメ縛りとかにしてたりして訳が分からなくなることもザラです。
皆さんはこうならないように人を思いやり気遣えるよう書きましょう。