出産前後の痔にはご注意!

私はかなり昔、BasicとFORTRAをかじった事があるものです。
VisualBasic2008ぐらいから勉強したのですが、最近Pythonという言語に興味をもち、本を数冊買いました。
これから、VisualBasic.Netか?それともPythonを学ぶべきか?
それとも他の言語を学ぶべきか?
どうしたら良いか迷っています。
よろしければ、アドバイス頂きたいです。

特に仕事でなく、趣味としてやりたいです。

将来的にはWindowsフォームのアプリを作りたいです。
自分で決めろ。と言われるでしょうが、他の方から見るといかがでしょうか?

このQ&Aに関連する最新のQ&A

A 回答 (3件)

> 将来的にはWindowsフォームのアプリを作りたいです。


というのであれば、選択肢は .NET 系の言語しかありません。
Python でも IronPython というものがありますが、Python と .NET との両方の本流からは外れているかなという感じです。
とりあえず VisualBasic の学習をしっかりすべきと考えますし、上記の目的のためならほかの言語も資料の豊富さからいって C# くらいしかありません。

ただし、何か一つの言語をしっかり身につけた上での話ですが、他の言語を学習するというのは、元からの言語の理解を深めるうえでも大事なことと思います。
私も専門は C/C++ ですが、他の言語の学習も欠かしていません。特に Ruby, PHP, JavaScript や Erlang といった C とは全く違う言語を学んで、「え、こんなことやっていいの?」とか「C では大変な○○がこの言語ではこんなに簡単に!」とか目からうろこが取れたことが多々ありましたし、逆にその学習を通じて C/C++ の利点(と弱点)を深く理解する経験を得ました。

この回答への補足

とても丁寧に有難うございました。IronPythonに関してもほぼ同様な物かと思い込んでいました。C/C++は大変そうですが、身に付けると素晴らしいですね。

補足日時:2014/07/17 19:01
    • good
    • 0
この回答へのお礼

どうも有難うございました。時間の問題にもよりますがVB.NETに時間をさいていこうと思います。他の方々の意見も参考になりました。有難うございます。

お礼日時:2014/07/18 20:40

プログラム言語というのは、「お勉強として」言語仕様を勉強することも大事ですが、それで実現するアプリケーションの環境、つまりWebだとかWindowsアプリの知識と、環境と言語の間を取り持つフレームワークの理解のほうがはるかに複雑です。



Pythonは最近Webアプリの開発言語として注目されてきましたが、そこにはDjangoというフレームワークの存在があります。
同様に、VB.NETにも、Webアプリの開発にはASP.NETというフレームワーク(というか運用環境)があります。
(Windowsアプリケーション開発では、特に明確なフレームワーク名はありませんが、"Windows Forms"や"Windows Service"のような「プロジェクト種別」で区別します)

.NET版のIronPythonは、Pythonを.NET開発に適合させるように改良したものですが、言語仕様がかなり変更れており、慣れないと相当違和感を覚えると思います。IronRubyも同じ。

Windowsフォームのアプリを作りたければ、まずはVB.NETで。
より強力な記述ですっきりしたコードを書きたければC#が当面の選択肢でしょう。
VB.NETもC#も、元言語(BasicやC/Java)とは大幅に仕様が異なっていますので、一筋縄ではいかないと思いますが。

この回答への補足

回答有難うございます。C#も考えていましたが、VB.NETと比較して難しそうだったので、VB.NETにしました。確かにBasicもかなり変わりましたね。実感しています。

補足日時:2014/07/18 20:13
    • good
    • 0
この回答へのお礼

遅くなりました。詳しい情報有難うございました。

お礼日時:2014/07/22 18:07

>特に仕事でなく、趣味としてやりたいです。


趣味で学ぶなら、両方学べば良いと思いますよ。
学ぶ言語を一つに絞ろうとする質問者が多くて不思議でなりません。学ぶ順序の相談ならともかく。

>将来的にはWindowsフォームのアプリを作りたいです。
Windowsの上だけで動くアプリを作りたいのならまずはVBでしょうか。

この回答への補足

回答有難うございます。時間によりけりで考えてやってみたいと思います。有難うございます。Pythonに関しては最近知ったので、色々な事が出来ると考えていました。

補足日時:2014/07/18 20:06
    • good
    • 0
この回答へのお礼

遅くなりました。VB.NETを出来るだけやってみようと思います。

お礼日時:2014/07/22 18:09

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QVBでグローバル変数を宣言するには

VB初心者ですが。クイズゲームのようなものを作成したいと考えてます。
Private Sub ~ End Sub の中で宣言した変数って他のところに呼び出したり(戻り値として渡す)出来るのでしょうか?
どこでも、いつでも呼び足せるグローバル変数の宣言とはどのようにやるのか、具体的に教えていただけないでしょうか?

Aベストアンサー

>Public a as Integerのように宣言して、初期化するにはどのように記述を行えばよいですか?

>Public a As Boolean = 0
のように記したら”コンパイルエラー”と出ました。

Booleanって整数値取れたかなと思いつつ。
Sub~End Sub内でa = 0を代入したりしてください

扱おうと言うことがあるかどうか疑問だけど

Public Const a As Integer = 10 'グローバルな定数の宣言

QMAX値を条件にデータを取得するには?

SQL文で困っています。
ご教授下さい。


下記のようなデータがあった場合、それぞれの区分毎に
年月が最大(最新)のデータを取得したいです。
(実際には1レコードにその他項目があり、それらも取得します。)
<検索対象データ>
区分 年月   金額
-----------------------------
A   200412  600
A   200503  560
B   200311  600
B   200508  1000
B   200504  560
C   200508  400
C   200301  1100


<取得したいデータ>

区分 年月   金額
-----------------------------
A   200503  560
B   200508  1000
C   200508  400

よろしくお願いします。

Aベストアンサー

テーブル名をXXXとすると次のようなSQLでよいと思います。(最善の方法かどうかは自信がないですが)

select B.* from (select 区分, max(年月) as 年月 from XXX group by 区分) As A
inner join XXX as B on A.区分 = B.区分 and A.年月 = B.年月
order by B.区分

QVB.NETのコンボボックスについて

VB6からVB.NETでプログラミングを始めました。
コンボボックスのクリアの仕方や設定の仕方、また
取り出し方等を教えて下さい。

色々とヘルプも見てみたのですが、よく解りません。
宜しくお願い致します。

Aベストアンサー

クリアだけだと思ってました。
追記します。

Itemを操作します


'登録
For i = 1 To 10
  Me.ComboBox1.Items.Add(i.ToString)
Next

'取得
For i = 0 To Me.ComboBox1.Items.Count - 1
  MsgBox(Me.ComboBox1.Items(i).ToString)
Next

'完全クリア
Me.ComboBox1.Items.Clear()

部分クリア
Me.ComboBox1.Items.RemoveAt(Index値)

QVB.NETのテキストボックスの書式指定

VB.NETで開発練習中です。

フォームへ呼び出したデーターを、数値データであれば
カンマ区切りとか、小数点以下の桁数を指定するのは
どうしたらできるのでしょうか?
ソースのACCESSのテーブルには指定してあっても、
呼び出したデータには当然反映されませんよね。
初歩的ですがどなたか教えてください。
よろしくお願いします。

Aベストアンサー

No.3です。

私のレスは間違いでした。

FormのLoadイベントでテキストボックスに値を入れているのですね?

であれば、TextBoxのTextChangedイベントが発生します。このイベントで処理をします。

テキストボックスが多数あるのであれば、コントロール配列を使って処理をすればいいでしょう。

QVB.NET getとsetの概念がわかりません。

GetとSetがどういう働き・意味をもっているのか理解できていません。

たとえばSpecialTextBoxというクラスがあったとします。
***************************************************************
Imports System.Web.UI.MobileControls

Partial Class SpecialTextBox
Inherits System.Web.UI.MobileControls.MobileUserControl

Public Property Item() As SelectionList

Get
Return Me.CheckBox
End Get
Private Set(ByVal value As SelectionList)
Me.CheckBox = value
End Set

End Property

End Class
****************************************************************

ここでのGet Setはどういう動き・働きをしているんでしょうか?
わかる方がいたらご助言お願いいたします。
(サンプルソースなどがあれば理解しやすいかもしれません。。)

GetとSetがどういう働き・意味をもっているのか理解できていません。

たとえばSpecialTextBoxというクラスがあったとします。
***************************************************************
Imports System.Web.UI.MobileControls

Partial Class SpecialTextBox
Inherits System.Web.UI.MobileControls.MobileUserControl

Public Property Item() As SelectionList

Get
Return Me.CheckBox
End Get
Private Set(ByVal value As Sele...続きを読む

Aベストアンサー

getはそのインスタンスから値を取り出します。
setはそのインスタンスに値を設定します。
あなたの例だと、GetはCheckBoxの値を取り出します。
SetはCheckBoxに指定した値を設定します。

QVBとVBAの違い

お世話になります。

現在、ExcelVBAで機械設計の計算をさせようと思い勉強しているのですが、VBとVBAの違い(VBと比較したとき、VBAできること、できない事)の境目?がいまいち判りません。
まだまだ勉強中で困惑しております。このままExcelVBAを勉強していく物か、VBについて勉強していくか迷っています。このままExcelVBAを勉強してExcelVBAを理解すれば判断できるかと思うのですが、畑違いの勉強になってしまわないかと心配です。

やりたいことは、各種計算の簡略化です。
現在は、関数電卓で行っていますが、これをパラメータを入力すると計算結果が出る。このような物を作りたいと思っています。

長くなってしまったのでまとめると、
1、VBAとVBの違い
2、ExcelVBAで設計計算が可能か
あと、
プログラムにより計算させるときに、最適なプログラム(JavaとかPHPとかHTML等など・・・)お勧めのプログラムがありましたらアドバイス頂けたらと思います。

Aベストアンサー

1. VBAとVBの違い

VBは単体で動作するアプリケーションが作れますが、VBAはOfficeが必要です。
また、VBAはOfficeの環境が使えるので、Excel等を使った入出力の機能が既にできていますが、VBではある程度自分で作る必要があります。また、費用的な面でVBは購入しないと使えませんが、VBAはOfficeがあれば使えますので、既にExcelなどを導入されているならば、追加の費用が必要ありません。
もし、複数の人間で作ったプログラムを利用され、かつその中にOfficeを持っていない人が含まれるのであればVBAではできませんので、VBが必要です。

2. ExcelVBAで設計計算が可能か

可能です。また、多分VBAを使わなくてもExcelの関数でもある程度のことが可能だと思われます。お持ちの関数電卓の桁数にもよりますが、相当な高精度が必要でない限り大丈夫です。

文面からすると、プログラミング未経験のようですが、やりたいことが明確なので、Excelをお持ちであればVBAで始めてみてはいかがでしょうか。他の言語(Java, C, PHP...)でも可能でしょうが、中には環境を用意しなくてはならなかったり、本質である計算以外に気にしなくてはならないことが多く、初心者にはとっつきづらいのではないかと考えます。

VBAからVBへの移行、VBからVBAへの移行はどちらも可能ですし、VBAからVBへの移行は多少時間がかかるかもしれませんが、VBよりVBAから始める方が楽なので、どちらに優越があるとは一概に言えないと思います。一人でちょっと使う程度や勉強用なら、ExcelVBAをお勧めします。
しばらくすると、ExcelVBAの限界を感じるようになると思うので、そこからVBに移行するというのでも悪くないと思います。

1. VBAとVBの違い

VBは単体で動作するアプリケーションが作れますが、VBAはOfficeが必要です。
また、VBAはOfficeの環境が使えるので、Excel等を使った入出力の機能が既にできていますが、VBではある程度自分で作る必要があります。また、費用的な面でVBは購入しないと使えませんが、VBAはOfficeがあれば使えますので、既にExcelなどを導入されているならば、追加の費用が必要ありません。
もし、複数の人間で作ったプログラムを利用され、かつその中にOfficeを持っていない人が含まれるのであればVBAではで...続きを読む

Q閉じるボタンについて...

ご存知の方、教えて頂けないでしょうか?
フォームの閉じるボタンをクリックした時いきなり閉じるのではなく、
確認メッセージを出したいのですが、
閉じるボタンのクリックイベントを受け取り、条件によってクローズの中断を行うにはどのようにすれば可能ですか?
大変申し訳ありません。宜しくお願いします。

Aベストアンサー

VB6ならFormのQueryUnloadイベントで、
VB.NETならFormのClosingイベントで、
確認のメッセージと、それに応じて閉じないという判定を行えばいいかと。

参考URL:http://jeanne.wankuma.com/tips/form/closingcancel.html

QVB.NETで数十行のプログラムをコメントするには?

VB.NET2005を使用しています。
サブプロシージャ内のプログラムのうち
一部の数十行のプログラムをコメントとして扱いたい
のですがわざわざ全ての行を ' でコメントするのも面倒ですので
何かいい方法があればご教示いただけないでしょうか?

Aベストアンサー

ソースコード編集中は「テキスト エディタ」という名前のツールバーが表示されていると思います。
こいつの中の左から 7番目のボタンです。
ザザザっとコードを選択してからボタンを押すと一気にコメントアウトできます。

テキスト エディタ ツールバーがどれかわからなければ、ツールバーの上で右クリックをして表示されるツールバー一覧で「テキスト エディタ」にチェックを入れたり外したりしてみてください。

Q文字列の後ろから必要分だけ削除したい。

例1 Dim str As String = "あいうえお1234"

文字列の中の1234だけ削除したい場合は、
str = str.Remove(5,4)
という風に、5文字目の後から4文字削除にすればよいのですが、

例の"あいうえお"の部分の長さが毎回処理する度に異なる場合は、
文字列の頭から何文字目という指定ができないので、”後ろから4文字を削除したい”となります。その場合は、どのようなプロパティを使えばいいのでしょうか。

.NET環境です。

Aベストアンサー

Length(str)で文字数を取得できますので、後ろから4文字目は先頭から何文字目かは計算できると思いますが、どうでしょうか?

QPDFファイルを開かずに印刷したい

幾つものPDFファイルを印刷したいのですが、
できればAdobeReaderを起動させずに印刷したいです。

ファイルのアイコン上で右クリック→印刷でも可能ですが、
数が多くなると、この作業も大変です。
そこでVisualBasic2008ExpressEditionを使って、
簡単なシステムを作りたいと考えています。

しかし、PDFを開かずに印刷する方法が、どうしてもわかりません。
ネット検索、教えてgoo内の検索でもヒットせず途方に暮れています。
参考になるホームページや書籍がありましたら教えてください。
「こんな手法があるよ」というものでも構いません。

宜しくお願いします。

Aベストアンサー

PDFを開く際にACRORD32.exeに対して以下のコマンドラインを指定してください。

ACRORD32.EXE /s /l /p /h [PDFのパス]

コマンドラインの解説は参照URLを。

参考URL:http://scripting.cocolog-nifty.com/blog/2007/07/adobe_reader_81_e41e.html


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング