投稿者 魔界の仮面弁士  (社会人) 投稿日時 2021/10/24 17:43:53
> エラーが数多くでたのですが,解決策を選択した結果5つのエラーのみとなりました.

移植以前の問題として……VB .NET に関する基礎知識が、根本的に不足しているように見えます。
18日の回答にも書きましたが、移植作業というものはある程度の基礎知識を要求する作業です。

それに、算数を学び終わっていない人から数学に関する質問を問われたとしても、
どこから答えれば理解してもらえるのか、中々悩ましいところです。

ということで、移植作業を始める前に、VB に関する何らかの入門者や初級者向けのチュートリアルを
一通り試して、基礎知識をつけておかれることを強くお奨めします。
もちろん、ここのサイト(VB中学校)の講座でも良いでしょう。


それから、移植元となる VB6 に対する経験が十分にあるのかどうかも聞いておきたいところです。
移植元である 『VB6』という言語に関する開発経験は、どの程度ありますか?
VB6 の知識があるのなら、それを踏まえた上で話をすることができるのでは回答しやすいです。

それとも VB6 は初心者、VB.NET に至っては入門者…という段階だったりするのでしょうか。


> これにつきましてどのように対応したらよいかご教示なにとぞよろしくお願いいたします。
では一つずつ。

> ①BC30481 'Class' ステートメントの終わりには、対応する 'End Class' を指定しなければなりません。 1行目

エラーメッセージに『'Class' ステートメントの終わりには』と書かれていますよね。
しかし提示されたコードの 1 行目には、Class という文字列はどこにもありません。

これは変ですね。本当にこのエラーメッセージは、提示されたコードに関して述べられたものでしたか?
もしかして、実際には Form1.vb ではなく、Form2.vb や Module1.vb などといった
他のファイルに対するエラーメッセージなのではありませんか?

いずれにせよ、Windows Form アプリケーションを作成しているのであれば、
最初の時点では、Form1 のコード中に Class ステートメントがあったはずです。
プロジェクトを作成した初期状態で下記のように、Class ステートメントで始まり、
End Class ステートメントで終わるコードが用意されます。
Public Class Form1

End Class


しかし投稿いただいたコードには、Class 宣言や End Class がどこにもありません。

あえて掲示板に記載していないというだけならば良いのですが、エラーメッセージを見る限り、
少なくとも End Class の存在が VB に認識されていない状態であることが分かります。
(おそらくはファイルの 1 行目には Class があるが、対応する End Class が失われている状態)

本当にメソッド (Sub プロシージャーあるいは Function プロシージャーのこと)を
ファイルの先頭に記述しているのだとしたら、Class~End Class の宣言を復活させてください。

「If に対する End If」「For に対する Next」「Sub に対する End Sub」のように、
「Class に対する End Class」が正しく存在していることを確認しましょう。
それが修正されれば、①のエラーは無くなるはずです。


> ②BC30001 名前空間では有効でないステートメントです。  1行目
これは提示されたコードの 1 行目の「Private Sub Button1_Click~」のことですね。

メソッド (Sub プロシージャーあるいは Function プロシージャーのこと)を記述する場所は、
「Class 何某~End Class」ブロックや、「Module 何某~End Module」などの中に限られます。

VB6 の頃とは異なり、ファイルの直下に Sub プロシージャー等を記載することはできません。
上記①でも書きましたが、メソッドはきちんと Class ブロック内に収めるようにしましょう。


> ③BC30506 Handles 句には、それを含む型または基本型の 1 つで定義された WithEvents 変数が必要です。 1行目
Private Sub Button1_Click~~の行を、手作業で記述したり、後から編集してしまっているようですね?

フォームにボタンを貼ってそれをダブルクリックした場合、イベントハンドラーとして自動的に
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

End Sub
というコードが記載されるはずです。しかし提示されたコードでは、引数の数がまったく違っています。
イベントハンドラーとなるメソッドは、原則として 2 つの引数をもつものとして定められており、それぞれの引数の型も決められています。
この定義部は勝手に変更しないようにしましょう。

なお、最初にあった「Public Class Form1~End Class」のコードをすべて削除していた場合、その状態で
コントロールをダブルクリックしても、イベントハンドラーが期待通りに生成されないなどの問題を引き起こすことがあります。

また、VB2019 のバージョン v16.10.0~v16.10.2 においては、正しい操作手順を踏んでいたとしても、
イベントハンドラーが正しく生成されないという不具合がありました。こちらの問題は、現在のバージョンでは
正しく生成されるように修正されていますので、Visual Studio には最新版の更新プログラムを適用しておきましょう。


②と③の問題は、そのまま ④と⑤が指す Private Sub Button2_Click の 5 行目にも当てはまるので省略。