質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

Q&A

解決済

3回答

1476閲覧

Visual C#でフォームを表示する処理 VBと比較して。

otojiro

総合スコア35

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

0グッド

0クリップ

投稿2017/01/25 03:11

今までに、Microsoft Accessを使用して主に自社で使うデータベースアプリケーションを作ってきました。
自社といっても個人事業ですので、基本的には構築からデータ登録、操作はすべて自分一人ですので、バグが見つかればその都度修正して使っています。

大規模なシステムでなければ何とかVBAを使い構築することができております。
VBAの記述は、本職のエンジニアさんから見ればだいぶ無駄があり、おかしな記述になっている部分も多くある状態ですが、基本的に行いたい処理が見つかればネットで調べつつ、知識を蓄え成長してきました。

今回自社で仕様しているシステム構築にも一区切りついたため、前々から興味があったのですが見て見ぬふりをしてきましたC#を勉強してみようと思い、いろいろ調べてみるとVISUAL STUDIO 2015 Communityという総合開発環境が無料でダウンロードできることを知り、早速ダウンロードして使用してみました。

参考図書として「Visual C# 2015 パーフェクトマスター」という書籍も購入して少しずつ読み進めております。

今回teratailで質問させていただくには厚かましような内容になるのですが、Visual C#でフォームを表示するという処理で、上記書籍ではForm1に配置されたbutton1をクリックしてForm2を開く(表示)する記述として

C#

1Private void button1_click(object sender, EventArgs e) 2{ 3 Form2 frmForm2 = new Form2(); 4 frmForm2.showDialog(); 5}

とあります。

もちろんこの通り記述して動作もしているのですが、ACCESS のVBA処理の知識しかなく、理解できないままでいます。

ACCESS VBAでは
Docmd.openform "form2"
というようになると思うのですが、上記のC#でのフォーム表示処理をACCESS VBAで無理やり解説するとどのようなことをしているのでしょうか?

特に1行目の
Form2 frmForm2 = new Form2();
の部分が....

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

VBAっぽく書くとこんな感じでしょうか?

Private Sub button1_click(sender As Object, e As EventArgs) Dim frmForm2 As Form2 Set frmForm2 = New Form2 Call frmForm2.showDialog End Sub

VBA は

Dim 変数名 As 型名 Set 変数名 = New 型名

だったかと思いますが、
C# は

型名 変数名 = new 型名();

のように書きます。

VBA と C# だと、書き方がかなり違うので
はじめての C# 的な本やページを見てみると良いかもしれません。
(VBA と VB.NET とかなら結構似ているのですけどね)

投稿2017/01/25 03:52

編集2017/01/25 03:57
sk_3122

総合スコア1126

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

otojiro

2017/01/25 04:23

sk_3122さん 大変わかりやすくご回答いただきありがとうございます。 まだ頭が切り替わらず、すっと頭に入ってきませんが、こればかりは慣れるしかないですね。 だいぶすっきりしました。ありがとうございます。
guest

0

クラスとインスタンスを理解する必要があります。

クラスには、プログラムやそれに必要なデーターの宣言部が書かれています。
New によりそれをインスタンス化(実態化)します。

Form2 frmForm2 = new Form2();

この例では、FORM2というフォームクラスをfrmForm2 という名前で宣言して、それを実態化したものを代入しています。

例:
これは、中身が無いのでshowDialog()部分でエラー
Form2 frmForm2
frmForm2.showDialog();

これで使えるようになります。
Form2 frmForm2 = new Form2();
frmForm2.showDialog();

投稿2017/01/25 04:21

編集2017/01/25 04:22
107User

総合スコア78

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

otojiro

2017/01/25 04:29

107Userさん ご回答ありがとうございます。 Form2 frmForm2 = new Form2(); は宣言と実体化を同時に行っていたのですね。 少しずつですが頭を切り替えていきます。 ありがとうございました。
guest

0

1行目
Form2型である変数frmForm2を宣言して、(Form2 frmForm2)
Form2型の実体を新しく生成して(new Form2())
frmForm2に代入しています。Form2 frmForm2 = new Form2();

2行目
frmForm2を画面に表示します。frmForm2.ShowDialog();

投稿2017/01/25 03:35

ozwk

総合スコア13512

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

otojiro

2017/01/25 09:30

ご回答ありがとうございます。 わかりやすい説明ありがとうございます。 初めてのC#で頭が混乱していますが、たくさん書いて慣れてていくしかなさそうですね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問