none
VB2012の使用について RRS feed

  • 質問

  • はじまして まず、無茶な質問・馬鹿だなと思って読んでみて下さい。私は、50歳を超えています。

    私は、プログラミングの開発者では、ありません。それも全くの業界違いでございます。はっきり言ってど初心者です。しかしビジュアルスタジオ2012を今持っています。どうやって組み始めるのかすらわからないと言った方が宜しいと思います。

    GUI形式で選択する外観はすぐできるような気もしますが、内容(プログラミング)をどう組んで行ったらいいかもわからない状態であります。

    本来なら、VB開発者へ有料ソフトを組んでもらうのが筋とも思いますが、お金は会社が出してくれません。私も勿論出せません。

    ですから、どうやって組みだすのか、どうフォームを置いたらいいかも想像がつきません。

    会社側からCSV形式のデータ(パソコン内部にそのデータを取り込んでもそのままでもいいのです。)を加工してエクセルデータに変換しなくてはいけなくなりました。会社が要求している指示がそのCSV状態のままでは都合が悪く、加工せねばいけなくてそれをエクセルファイルで毎月更新保存をかけなくてはいけない状態であります。

    詳細を書きます。

    ①CSVの状態でON・OFFのステータスがあり、ON・OFFがあってもその中に使用量「0」が多いのです。その中で使用量「0」というステータスがある場合は、削る。(この「0」を削る作業が人力で目が痛くなるほどじっくり見ないと見落としてしまうことが多いのです。)

    ②使用量がある場合は、使用開始時刻・使用終了時刻に変更する。元データ2013/9/17→9月17日へする。元データ使用開始も9:50だったら9時50分へ終了時刻が9:56だったら9時56分へし、その後引き算の6分も出さなくてはいけません。表示されているCSVが二行に渡りONとOFFがあるのです。

    それを項番、開始時刻、終了時刻、その差時刻、使用量を一行にまずしなくてはいけません。

    ③時差が起こった時刻があれば項番をつけていく。9月に17回あれば1~17という感じででも行うのです。勿論、頭に点検表題も記入し、最後にはその引き算分の合算と使用量合計も出さなくてはいけません。その上、日平均も出すのです。

    ④もう一個のデータはありますが、これはOFF側のデータを丸々移せば良く、最後に合算値、平均値をとればいいことなので③ができれば応用だと思っています。

    VBAでもよさそうなのですが、VB指示になりました。

    この様な状態でVB仕事をやらされることとなりました。非常に甘えた考えた事だと思います。

    昔のVB2005の本を持っていますが、システムが進歩していてアプリケーションを開いた途端、随分違うなと引いてしまいました。これが現実です。

    アイデアとしても構いませんが、もしお教えして頂ければ幸いです。宜しくお願いいたします。

    2013年9月17日 12:11

回答

  • 誰もが最初はどうやってよいものかわからないものです。私も新しい技術に出会う時はいつもそうです。ただ、開発の流れに慣れるのは、そんなに大変なことではありません。飛行機に乗ったことのない人は、最初はどうやってチケットを買って、どうやって荷物を預けてとか、不安に思うことでしょう。しかし、何度か乗っていれば慣れるのにそんなに時間がかかるものではありません。
    プログラム開発も同じようなことが言えます。どうやってプログラムを書いて、どうやって修正して、どうやって動かすのだろう?と。でも、こんなことはすぐに慣れます。すぐに慣れるように、Vsiual Studio 2012対応の書籍を購入されることをお勧めします。

    さて、開発と言っても、どのような言語、およびどのようなテクノロジーで開発するのかといった選択枝がいくつかあります。言語はVBを選択されているようですが、他にC#という言語を選択することもできます。C#は.NET Frameworkに合わせて開発された言語です。どちらの言語にも慣れていない状態で新しく始められるのでしたら、私はC#をお勧めします。VBはVB6からの移行を考慮している部分もあって、そこがVB6に慣れていない人には逆にわかりにくくなるのではないかと思うからです。もちろん、好みもありますので、VBを選択されても全く問題ありません。

    次にテクノロジーです。デスクトップアプリケーションのようですから、Windowsフォームアプリケーション、WPFアプリケーションのどちらかになります。今後はWPFが主流になっていくと思われますが、Windowsフォームの方が敷居はかなり低いと思います。ただ、今回のCSVの加工程度であれば、WPFで開発されても、ほぼWindowsフォームと同じ感覚で作成することができると思います。お勧めはWPFですが、あとは富士徹さんのやる気次第です。他に、Windows 8のストアアプリがありますが、これからプログラムを始められる方には、敷居が高いでしょう。

    プログラムの勉強も兼ねているのであれば、とりあえず何か動くものを作ってみることをお勧めします。例えば、CSVを読み込んで、最初に連番を追加するといった簡単なものでかまいません。
    (例)
    りんご, 100円
    なし, 110円
       ↓
    加工後
       ↓
    1, りんご, 100円
    2, なし, 110円

    簡単と書きましたが、そう簡単ではないかもしれません。この開発を通して、多くのことを学ぶことができます。特に、開発の流れに慣れることが、一番大切なことです。

    (開発の流れ)
    1.コードを書く。
       ↓
    2.コンパイルして実行。 #エラーがあってコンパイルできなければ1.に戻る。
       ↓
    3.無事に動作し、開発完了。
     #動作するが思い通りに動かなければブレークポイントで止めるなどしてデバッグし、1.に戻ってコードの修正

    この流れがわかれば、後はコードを書くだけです。コードはネットから探してきて、それを応用するのが一番簡単です。
    私もよくそうします。例えば、
    「vb.net csv 読み込み」で検索するだけで、多くの有益なコードが見つかるはずです。

    CSVというファイルを扱うので、プログラムの開発をこれから始められる方には、少し難易度が高いかもしれません。
    しかし、実現したい目標がはっきり決まっていることは、プログラム開発の技術を習得する上で、大きなモチベーションになることでしょう。

    Visual Studioという開発ツールに慣れること、つまり、開発の流れるに慣れること。これが入口だと思います。


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/

    • 回答としてマーク 富士徹 2013年9月18日 12:10
    2013年9月18日 6:19
    モデレータ

すべての返信

  • ファイルの開き方も加工方法も出力方法もわからない人に、より詳細な業務を実現するプログラムのアイデアを出したところで何も理解できないでしょう。

    まずは最新の参考書や WEB 情報をいくつか読んで勉強してください。その上でわからないことを質問してみてください。

    これから勉強にどれだけ時間を掛けられるかが問題です。年齢なんて言う必要はないし、むしろ年齢のせいにして結局何もしない理由にしてしまいます。

    それと、VB は初心者を混乱させる要素が多くよくない方法を覚えてしまう可能性があるので C# をおすすめします。

    2013年9月17日 13:22
  • 富士徹 さま よろしく。
     
    私も素人の ええ歳(?)なので、素人なりにコメントします。

    文面から拝察するに、手作業で行っている作業をプログラミングに置き換えるという事で宜しいでしょうか?
    その場合、作業を細かく分け、箇条書きします。
    全体の大きな流れと 細かい個々の作業とを、数段構えで分解していきます。

    それをひとつずつ、プログラムに置き換えるイメージです。

    プログラムは最初から全てを盛り込んで作るより、部分的に作り、機能を追加して行くほうが楽かも知れません。

    その際のデータも、最初は、全数ではなく、代表的な数件から数十件程度を使って、考えて見て下さい。

    参考書は、個々のコマンドの解説書 と 組み上げる為のシステム構成の解説書 と2種類を用意されると良いでしょう。
    VS2012 用のものを新調されるのをお勧めします。

    2013年9月17日 13:40
  • 失礼させていただきます。 まず、C#ってなんですか。たしかにこのプログラムも入っていますが、使い方が初歩段階からになってしまいます。

    これもまた困った事ですが、どうなんでしょうかね。今は、初期のVBの入門書は幾冊かもっている状態です。開発編も含めてですがね。

    詳細な、プログラムのアイデアは、たぶん逆に混乱するのもわかっています。だから、亀状態で進むしかないかなとも思っていますよ。

    でもできれば入口を知りたいのですよ。わかって頂けましたか。すみません。

    そして、逃げるなんて甘い考えは毛頭まずもっていませんよ。しかし、私は、年齢と申し上げました。

    どうして年齢という壁を申し上げたか、全体をお話しします。この近々で資格「エネルギー管理士」及び「第二種電気主任技術者」という資格の勉強もしなくてはいけないので二兎追うものは二兎も追えずどころか、3兎なんですよ。

    だから、心にある意味余裕がないのです。

    2013年9月17日 15:13
  • ありがとうございます。

    ですね、プログラムは最初から全てを盛り込んで作るより、部分的に作り、機能を追加して行くほうが楽だと思っています。

    データも、最初は、全数にする必要はないと思っています、代表的な数件から数十件程度を使って、考えるつもりです。

    参考書は、個々のコマンドの解説書 と 組み上げる為のシステム構成の解説書 と2種類を用意されると良いでしょう。は、ありがとうございます。ですね、VB2012 用のものを新調します。

    そこでわからなければ、また質問をさせて頂きます。今は、やみくもですよ。ありがとうございます。

    2013年9月17日 15:19
  • そして、逃げるなんて甘い考えは毛頭まずもっていませんよ。しかし、私は、年齢と申し上げました。

    どうして年齢という壁を申し上げたか、全体をお話しします。この近々で資格「エネルギー管理士」及び「第二種電気主任技術者」という資格の勉強もしなくてはいけないので二兎追うものは二兎も追えずどころか、3兎なんですよ。

    甘えていますよ。

    質問者さんはどのような回答を求めているのでしょうか。それとは別に回答者の視点で質問文を読んだとき何を求めていると読めるでしょうか。両者に乖離がありませんか? (ShiroYuki_Motさんの回答が求めているものに近いのでは、と予想します。)
    その上で、再度回答者の視点で、質問者さんの求めている回答を予想しながら質問文を読んだとき、年齢もプログラムの詳細も質問に関係ないと気付きます。それを持って甘えているという印象を受けます。(手を付けられない人がプログラムの詳細を書くということは、回答者が完成品を提供してくれることを求めていると受け取れます。)

    2013年9月17日 23:20
  • Hoshinaです
    こんにちは

    書かれている内容を読むかぎり,助言をフォーラムであるこの場に求めて,おひとりでプログラムを完成させるのは困難と思います。

    そこで,一番良いと思う方法を以下に書きます。

    「身近で,直接指導してもらえる,経験者を探してください。」
    これにまさる方法は,思いつきません。

    さらに,経験豊富な人がのぞましいです。自分の知っていることをなんでも,かつ正確に教えようとせず,相手の現在の状態を見たうえで,適切なアドバイスを提示できる人がみつかりましたら,最適の人と思います。
    例えば,企業でプログラムの開発や設計を担当された,定年退職者のかたなどです。

    その上で,このような大きな質問ではなく,個別で具体的な問題に直面した場合は,このフォーラムは非常に役に立つと思います。

    それでは,ご健闘ください。

    2013年9月17日 23:59
  • すでにExcelで作業をしているのなら、無理に.NETに手を染めずExcelマクロ(VBA)で済ますというのも手かもしれません。

    Excelの「マクロの記録」を使うと、操作を記録してVBAを吐き出してくれるのでまずはそれを眺めてみてはどうでしょう。

    2013年9月18日 2:25
  • かるあ さま よろしく。

    ご質問さんの本文を読まれましたか?

    VBAでもよさそうなのですが、VB指示になりました。 > とあります。

    業務なのでしょうから、よほどの理由でもない限り、方針変更は難しいのでは?

    2013年9月18日 3:08
  • あらら、すいません。見落としていました。

    #ここまで試行錯誤なら、もう相談してVBAでどうにかしてもらったほうがいいような気もしますが。。。

    2013年9月18日 3:21
  • 誰もが最初はどうやってよいものかわからないものです。私も新しい技術に出会う時はいつもそうです。ただ、開発の流れに慣れるのは、そんなに大変なことではありません。飛行機に乗ったことのない人は、最初はどうやってチケットを買って、どうやって荷物を預けてとか、不安に思うことでしょう。しかし、何度か乗っていれば慣れるのにそんなに時間がかかるものではありません。
    プログラム開発も同じようなことが言えます。どうやってプログラムを書いて、どうやって修正して、どうやって動かすのだろう?と。でも、こんなことはすぐに慣れます。すぐに慣れるように、Vsiual Studio 2012対応の書籍を購入されることをお勧めします。

    さて、開発と言っても、どのような言語、およびどのようなテクノロジーで開発するのかといった選択枝がいくつかあります。言語はVBを選択されているようですが、他にC#という言語を選択することもできます。C#は.NET Frameworkに合わせて開発された言語です。どちらの言語にも慣れていない状態で新しく始められるのでしたら、私はC#をお勧めします。VBはVB6からの移行を考慮している部分もあって、そこがVB6に慣れていない人には逆にわかりにくくなるのではないかと思うからです。もちろん、好みもありますので、VBを選択されても全く問題ありません。

    次にテクノロジーです。デスクトップアプリケーションのようですから、Windowsフォームアプリケーション、WPFアプリケーションのどちらかになります。今後はWPFが主流になっていくと思われますが、Windowsフォームの方が敷居はかなり低いと思います。ただ、今回のCSVの加工程度であれば、WPFで開発されても、ほぼWindowsフォームと同じ感覚で作成することができると思います。お勧めはWPFですが、あとは富士徹さんのやる気次第です。他に、Windows 8のストアアプリがありますが、これからプログラムを始められる方には、敷居が高いでしょう。

    プログラムの勉強も兼ねているのであれば、とりあえず何か動くものを作ってみることをお勧めします。例えば、CSVを読み込んで、最初に連番を追加するといった簡単なものでかまいません。
    (例)
    りんご, 100円
    なし, 110円
       ↓
    加工後
       ↓
    1, りんご, 100円
    2, なし, 110円

    簡単と書きましたが、そう簡単ではないかもしれません。この開発を通して、多くのことを学ぶことができます。特に、開発の流れに慣れることが、一番大切なことです。

    (開発の流れ)
    1.コードを書く。
       ↓
    2.コンパイルして実行。 #エラーがあってコンパイルできなければ1.に戻る。
       ↓
    3.無事に動作し、開発完了。
     #動作するが思い通りに動かなければブレークポイントで止めるなどしてデバッグし、1.に戻ってコードの修正

    この流れがわかれば、後はコードを書くだけです。コードはネットから探してきて、それを応用するのが一番簡単です。
    私もよくそうします。例えば、
    「vb.net csv 読み込み」で検索するだけで、多くの有益なコードが見つかるはずです。

    CSVというファイルを扱うので、プログラムの開発をこれから始められる方には、少し難易度が高いかもしれません。
    しかし、実現したい目標がはっきり決まっていることは、プログラム開発の技術を習得する上で、大きなモチベーションになることでしょう。

    Visual Studioという開発ツールに慣れること、つまり、開発の流れるに慣れること。これが入口だと思います。


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/

    • 回答としてマーク 富士徹 2013年9月18日 12:10
    2013年9月18日 6:19
    モデレータ
  • 富士徹 さま 追加情報です。

    大きく分けて3つですか。
    1.CSVから読込む
    2.データを加工する
    3.エクセル形式で吐き出す(書き込む)

    そう、プロジェクトを作ってプログラミングして行く訳ですが、2本立てにしましょう。
    ひとつは、目的のソフト用、もうひとつは試行錯誤用(複数も可)。
    試行錯誤用は、単一の機能の実装(プログラミング)を試すのに使い、
    これがちゃんと動いたら、ソフト用にまた組み込みます。
    はじめは思う様に動かないと思いますので、
    プロジェクトのフォルダ*ごと、コマめに、別のフォルダにバックアップしましょう。
      *:C:\Users\YourName\Documents\Visual Studio 2012\Projects の下のフォルダ

    デバッグといって、ちゃんと動くか確認していきますが、
    画面に途中経過(演算結果等)を表示するようにプログラムする事で、
    デバッガー(VSの機能のひとつ)の使い方が分からなくても少しは役に立ちます。
      ゆくゆくは、デバッガーにも慣れて下さいね。

    CSVは文字として読みますが、変数は加工し易い 文字変数/整数変数/実数変数/日付変数 等に
    分けて定義した方が良いでしょう。
    これに対して、要求される加工結果にあった また別の 変数を用意し、演算・加工・型変換して収めます。
    この処理をループで回します。
      ご質問文からすると、CSV2行でひとセットのデータになるのでしょうか。
    ループの中に書き込みも入ると思います。

    最後のエクセルですが、これは私は不得手(不明)でして、検索や文献で調べて下さい。

    実際のデータを見ている訳ではないので、間違いがあるかも知れません。
    ご自分で、よく、お考えになって決定して下さい。
    もし、時間的に許されるなら、目的のソフトから離れて、基本的な演習問題をいくつか解かれる事をお勧めします。

    2013年9月18日 10:01
  • ●VBで組むという前提なら、下記URLを見ながら肉付けしていくというのはどうでしょうか。

    http://dobon.net/vb/dotnet/index.html

    CSVの読込みについても解説があるようです。下記書籍も役に立つかもわかりません。

    http://blog.shuwasystem.jp/shuwa/2010/11/visual-basic-2010-555.html

    私が始めたときはこの書籍のVB2005版のものを使いました。

    ●VBで組むという前提を外せばAccessで組むことが考えられます。

    素直なCSVならCSVの取込はノンプログラミングでできます。

    特定の条件で抽出する作業もノンプログラミングです。クエリーというものを使います。

    使用量0を削る作業もノンプログラミングです。

    「CSVが二行に渡り」このあたりが素直に行かなさそうではあります。

    いきなりシステム開発をしないで業務の一部でも効率化してミニマムでまずは結果を出すことを考えてはいかがでしょうか。

    方針の転換を推奨します。


    http://systemartlaboratory.com/

    2013年9月18日 11:09
  • まずは、最初にありがとうございます。

    なんでもそうですよね。赤ちゃんではないのですから、一から徐々に物事を進めなくては、何もわからないということは現実ですね。

    お話を読んでいるうちに納得してきました。

    私には、元帳になるCSVデータと上司が欲しがっている情報は持っていますし、内容も知っているのです。

    ただ、開発の流れに乗ったり、コードを書いたりする(プロパティやメソッドをちゃんと選べるのか)等がはっきり言って怖いのです。

    「これを言っちゃ、おしまいだよ。」と思われるかも知れませんが、今回のVB、第二種電気主任技術者は会社からの厳命に等しい為、心に余裕がないのです。とこうやってネット接続をしておりますが、本来そんな余裕もないのが現実だったのです。

    話の路線が崩れるかも知れませんが、公私とも忙しくてたまらなく第二種電気主任技術者試験は、通常一日5時間以上(本当なら8時間)の勉強と健康管理を問題集では謳っています。その上、今回のVB案件。エネルギー管理士は、後回しにしてもやらねばならないことなのです。但し、このCSVデータは、エネルギー管理に関係していることなので無視はできないのです。

    trapemiyaさんが、簡単と書きましたが、そう簡単ではないと思っています。しかし、一歩一歩進んでいかないと、学ぶことができませんよね。だから、VBは、開発の流れに慣れることが、一番大切だと思っています。

    (開発の流れ)
    1.コードを書く。
       ↓
    2.コンパイルして実行。 #エラーがあってコンパイルできなければ1.に戻る。
       ↓
    3.無事に動作し、開発完了。
     #動作するが思い通りに動かなければブレークポイントで止めるなどしてデバッグし、1.に戻ってコードの修正

    この流れがわかれば、後はコードを書くだけです。コードはネットから探してきて、それを応用するのが一番簡単です。
    私もよくそうします。例えば、
    「vb.net csv 読み込み」で検索するだけで、多くの有益なコードが見つかるはずです。

    わからないことをお教えください。すみません。コードはネットから探してきてや「vb.net csv 読み込み」で検索するだけで、多くの有益なコードが見つかるはずですは、やってみればわかることですが、それが自分の意図していることなのかはわかる物なのでしょうか。

    まずは、本を見て簡単な物を作ってみてどんなものかを知りえないと(敵を知るにはまず己から?)何も言えませんね。

    慣れてきたら「vb.net csv 読み込み」で検索をし、多くの有益なコードを見つけてみます。

    ありがとうございました。待ったなしなものですから・・・。

    2013年9月18日 12:09