A2. Java ・ C# ・ VBA との対応表

知っている言語の書き方から、JavaScript の書き方を引く。対応は目安で、細かい動きは違うことがある

📅 作成: 2026-10-09 / 更新: 2026-10-09

基本

することJavaC#VBAJavaScript
変数int n = 1;var n = 1;Dim n As Longlet n = 1;
定数final int MAX = 10;const int Max = 10;Const MAX As Long = 10const MAX = 10;
表示System.out.println(x);Console.WriteLine(x);Debug.Print xconsole.log(x);
コメント// ・ /* */// ・ /* */'// ・ /* */
空の値nullnullNothing ・ Emptynull ・ undefined
型を調べるx instanceof Tx is TTypeName(x)typeof x ・ x instanceof T
プログラムの入口main メソッドMain メソッド実行する Subファイルの先頭から順に実行

演算子と文字列

することJavaC#VBAJavaScript
等しい==(文字列は equals)======
等しくない!=!=<>!==
かつ ・ または ・ でない&& || !&& || !And Or Not&& || !
割った余りa % ba % ba Mod ba % b
整数の割り算7 / 2 → 37 / 2 → 37 \ 2 → 3Math.floor(7 / 2) → 3(7 / 2 は 3.5)
文字列の連結"a" + b"a" + b"a" & b"a" + b
値の埋め込みString.format("%s円", x)$"{x}円"x & "円"`${x}円`
文字列 → 数値Integer.parseInt(s)int.Parse(s)CLng(s)Number(s)
数値 → 文字列String.valueOf(n)n.ToString()CStr(n)String(n)
文字数s.length()s.LengthLen(s)s.length
無ければ既定値(Objects.requireNonNullElse)x ?? d—x ?? d

制御構文

することJava ・ C#VBAJavaScript
条件分岐if (a) { } else if (b) { } else { }If a Then … ElseIf b Then … Else … End IfJava ・ C# と同じ
多分岐switch (x) { case 1: … break; }Select Case x … Case 1 … End Selectswitch。比べ方は ===。break を忘れると次へ流れ込む
回数のくり返しfor (int i = 0; i < n; i++)For i = 0 To n - 1 … Nextfor (let i = 0; i < n; i++)
要素のくり返しJava for (var s : list)
C# foreach (var s in list)
For Each s In col … Nextfor (const s of list)
条件のくり返しwhile (cond) { }Do While cond … Loopwhile (cond) { }
ぬける ・ 次へbreak ・ continueExit For ・ (無い)break ・ continue
条件で値を選ぶa ? b : cIIf(a, b, c)a ? b : c

注意: JavaScript には for (const k in obj) という形もありますが、これはキーを順に取り出すものです。配列の要素を取り出すときは for … of を使います。

コレクション

することJavaC#VBAJavaScript
伸び縮みする並びnew ArrayList<>()new List<T>()New Collection[]
足すlist.add(x)list.Add(x)col.Add xlist.push(x)
数list.size()list.Countcol.Countlist.length
n 番目list.get(0)list[0]col(1)(1 から)list[0]
含むかlist.contains(x)list.Contains(x)(自分で探す)list.includes(x)
変換 ・ 絞り込みstream().map(…) ・ filter(…)LINQ の Select ・ Where(ループで書く)map(…) ・ filter(…)
キーと値の組new HashMap<>()new Dictionary<K, V>()CreateObject("Scripting.Dictionary"){} ・ new Map()
組を読む ・ 書くmap.get(k) ・ map.put(k, v)d[k] ・ d[k] = vd(k) ・ d(k) = vo[k] ・ o[k] = v

関数とクラス

することJavaC#VBAJavaScript
関数static int add(int a, int b) { return a + b; }static int Add(int a, int b) => a + b;Function Add(a, b) … Add = a + b … End Functionfunction add(a, b) { return a + b; }
ラムダ式(a, b) -> a + b(a, b) => a + b—(a, b) => a + b
引数の既定値(オーバーロードで代用)int x = 0Optional x As Long = 0x = 0
クラスclass P { }class P { }クラスモジュールclass P { }
コンストラクタクラスと同じ名前クラスと同じ名前Class_Initializeconstructor() { }
継承extends: Base(無い)extends
親を呼ぶsuper.m()base.M()—super.m()
privateprivate int n;private int n;Private n As Long#n;
自分のメンバn(this. は省略可)n(this. は省略可)n ・ Me.nthis.n(省略できない)

エラー ・ 非同期 ・ モジュール

することJavaC#VBAJavaScript
例外を受けるtry { } catch (IOException e) { }try { } catch (IOException e) { }On Error GoTo 名前try { } catch (e) { }(型で分けない)
例外を投げるthrow new IllegalArgumentException("…")throw new ArgumentException("…")Err.Raise 番号, , "…"throw new Error("…")
後片付けfinallyfinally—finally
非同期の結果CompletableFuture<T>Task<T>—Promise
待つfuture.get()(止まる)await t—await p
ほかのファイルを使うimport pkg.Class;using Namespace;参照設定 ・ 標準モジュールimport { f } from "./x.mjs";
外に見せるpublicpublicPublicexport