• 締切済み

HSPでプログラミングを始めたい。

掲題の通りです。 事務作業をする上で、丁度自分の都合の良いように動くソフトが無いため、 無いなら作るしかない!と思い、プログラミングを始めようと思いました。 私がやりたい事に対して、どの言語がピッタリかは分からないので、 とっつき安そうな、フリーのHSPで始めようと思っています。 しかし、私がやりたい事に対して、もっと向いている言語があったら、 そちらの参考書籍などを購入し、勉強したいと思っています。 私がやりたい事ですが、 簡単に説明すると、予定表を自動的に見やすく並べて 印刷できるソフトを作りたいのです。 (1)自動ないし手動でCSVの取り込みを行う。 CSVは別のプログラムから吐き出される下記形式の物。 氏名,日付,開始時刻,終了時刻,予定内容,備考(不要データ),登録者(不要データ),色(不要データ) (2): 読み込んだCSVファイルを、実際の日付とCSVの2カラム目の日付を参照し、 当日週の分を表示させる。 (3): 日曜始まり、月曜終わりのエクセル風の1週間の予定表を自動表示。 先週、来週ボタンを押すことにより、先週や来週にも移動が可能。 (4): 予定表の形式は添付ファイルのデータのような形で 空欄,"日","日の日付,月,月の日付",以降土曜日まで繰り返す。 "テスト1",CSVの3カラム目の日付と日の日付がイコールかつ、5カラム目にテスト1と記載された場合の1カラム目の氏名を表示,空欄,以降一週間繰り返す。 "テスト2",同上 "テスト3",同上 "テスト4",同上 "休み",CSVの3カラム目の日付と日の日付がイコールかつ、5カラム目に休日と記載された場合の1カラム目の氏名を表示,空欄,以降一週間繰り返す。 空欄,"担当","予定内容","担当","予定内容",以降土曜日まで繰り返す。 "予定1",CSVの5カラム目がテスト1~4以外で、1ローの3カラム目の日付とCSVの3カラム目が同じ場合、CSVの1カラム目を表示する,CSVの5カラム目がテスト1~4以外で、1ローの3カラム目の日付とCSVの3カラム目が同じ場合、CSVの5カラム目、3カラム目"~"4カラム目と表示する。 "予定2", "予定3", "予定4", "予定5", "予定6", "予定7", "予定8", "予定9", "予定10", (5): 印刷ボタンを押すことで印刷が可能。 出力ボタンを押すことで画面をPDFやGIF等の 画像イメージで任意のディレクトリに出力。 (6):おまけ機能として、 任意のディレクトリに指定されたデータが入った(更新)された場合、 特定のFTPサーバーに自動的にアップロードする。 上記のような、高度な処理をプログラミングで果たして出来るのかは不明ですが、 お勧めの言語ですとか、参考文献、書籍などを、教えて頂ければ有り難いです。 環境はWindows7 HomePremiumです。 どうぞよろしくお願いします。

みんなの回答

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.2

私も、Excel+VBAがいいと思います。 さらっと書かれていますが、実際に面倒なのは(3)と(5)です。 他の項目は、長々と説明が書かれていますが、プログラムとしては簡単です。 「表の形に表示する」とか「ボタンを押したら表示を変える」とか、普通に1からプログラミングしたら、とてもとても面倒なものです。 ※ r行c列目は、画面上のX座標がxxドットでY座標がyyドットの位置になるから、そこに文字を設置して...ということを繰り返すことになります。 その点、Excelなら、既に表ができているので、各セルにデータを設定するだけです。 印刷やPDF変換も、Excelの機能として用意されているものをそのまま使うことができます。

yuhki_m
質問者

お礼

ありがとうございます。 エクセルとVBA?で実現可能との事ですので、 一度書店に行き、それらに関する書籍を購入してきます。 ありがとうございました。

noname#247307
noname#247307
回答No.1

普通に考えたなら、ExcelやOpenOfficeで作るのが一番簡単と思いますが……。オフィスソフトでは何かまずいんでしょうか。 後は、プログラミング言語関係なら、Windowsユーザーならば例えばVisual Basic .netなどはどうでしょう。GUIもツールで簡単に作れますし。同様の理由でVisual C#などでもいいと思います。どちらも、Express版なら無料で配布しています。 後、アプローチとしてはちょっと異質かも知れませんが、私がそうしたものを作るなら、JavaかPHPかRubyといった言語を使って、Webアプリケーションとして作りますね。今はクラウドサービスを使えば無料でWebアプリケーションが作れますし、使いながら改良していけますし。もし、万が一、かなりいいものができたら、そのまま公開してみんなに使ってもらうこともできますから。 その他の言語でもそれなりに頑張れば作れると思いますが、HSPはやめたほうがいいでしょう。HSPは、基本的にゲーム作成に特化した言語です。今ではそれなりに機能が強化されいろいろできるようになってきてますが、やはり向き不向きはあります。ビジjネスソフトの作成に使うものではないでしょう。

yuhki_m
質問者

お礼

ありがとうございます。 オフィスでプログラミングのようなことが出来るのですか? すみません。それすら知らなかったもので。 確かにwebアプリケーションにすれば、 簡単にいつでも確認が出来て便利そうですね。 もう一度調べ直す必要がありそうです。 ありがとうございました。

関連するQ&A

  • エクセルでエラーの値を表示させないためには?

    エクセルで月曜日の日付を入力すると火曜日以降の日付が 自動的に計算される数式を入れたのですが、 日付を入力することが分かりやすいように 月曜日の日付のセルをX/Yとすると、 当然ですが数式を入れたセルは エラー(#VALUE!)が表示されてしまいます。 X/Yと入力してもこの#VALUE!を表示されずに 空欄のままになるようにしたいのですが、 何か方法があれば教えてください。

  • バッチでcsvファイルの指定のカラムを編集したい

    バッチでファイルの編集をしたい バッチファイルを使用して、csvファイルの読み込み~編集を行いたいと思っております 元ファイル:TEST_DATA.csv 内容: 111,222,333,444,555 123,456,789,321,987 上記のcsvファイルを読み込み、 ・5カラム目が987ならば3カラム目を654に変更する という処理を実行させたいのですが、 どのように行えばよいのでしょうか? 現在考えていることは、 1.for文を使用して指定のカラムを抜く(3カラム目と5カラム目を抜く)) 2.5カラム目の値をif条件に指定し、合致した場合、抜いた3カラム目の変数に654を入れる 3.654に変更した変数を3カラム目の値として入れる という順番で行えばいいと思っているのですが、 下記まで行ったところで行き詰ってしまいました for /F "tokens=3,5 delims=," %%i IN (TEST_DATA.csv) DO @(if %%j==987 set %%i=654 echo %i %j ) お分かりになられる方、ご教授願えませんでしょうか

  • 二つのCSVを共通のカラムで照合して1つのファイルに

    お世話になります。 今回の質問は、分かりやすく言うと シェアウェアの「ズバリ自動化」の 結合機能のみを再現するエクセル用マクロを知りたい、ということです。 http://shop.vector.co.jp/service/catalogue/sr049619/ (上記ソフトは持っていません) 質問を図示してみます。 データ量は少ないのですが、 毎日の作業なので、一発でできれば最高です。 まず二つのCSVがあります。 注文データ(A)と発送データ(B)です。 (*は任意のデータです。) CSV(A)   A B C  D    E F G H I 1 * * * 佐藤A作 * * * * * 2 * * * 鈴木B三 * * * * * ・・・・・・・ 数行続きます。 CSV(B)   A B  C    1 * * 佐藤A作 2 * * 鈴木B三  ・・・ 氏名を照合カラムとして、それ以外のデータを結合して、 (注:CSV(B)の氏名を除いた後ろにCSV(A)を追加する) 別ファイルとして、出力するにはどういうマクロを使うのか? ということです。 二つのCSVでは名前の出てくる順序が違う場合があります。 また、 CSV(B)には(A)にない氏名も入っているので、 その場合、(B)のデータのみ引き継ぐようにするのも条件です。 よろしくお願いいたします。

  • CSVファイルのインポートについて

    SQL Server 2005 Standard, Windows XP(SP3)を使用しています。 あるツールから生成されるCSVファイルのデータベースへのインポートしたいと考えています。 しかし、CSVファイル以下のようなフォーマットになっています。 (・・・番号)は無視してください date,2009/05/27 (・・・1) name,test (・・・2) 時刻,A,B,C,D,E,F (・・・3) 11:13:05,1,2,3,4,5,6   (・・・4) 11:13:06,7,8,9,10,11,12  (・・・5) (以下4,5のようなデータが続く…) となっています。 1は日付情報、2は特に意味無し、3はカラムの情報としたい物 4(以降)はデータとなっています。 データベースへは "|" をカラムの区切りとすると 時刻 |A|B|C|D |E |F | 2009/05/27 11:13:05|1|2|3|4 |5 |6 | 2009/05/27 11:13:06|7|8|9|10|11|12| (・・・以降データが続く) 上記のように(3)をカラム情報にして、不必要な情報を省いた状態でデータを取り込みたいと考えております。 同じく上記の最初のフィールドのように、元データのdate情報を時刻情報と合わせてdatetime型として一つので取り込みたいと考えています。 この為には、文字列の操作が必要となってくると思いますが、SQL Server上ではこのような事はできるのでしょうか?

  • CSVファイルをExcelで開いた時、ハイフンで結ばれた数字が日付に変換されてしまう。

    お世話になります。 CSVファイルをExcelで開いた時に発生する問題についての質問です。 元のCSVファイルのデータは、5項目(5列分)あります。 その内、4項目については、氏名などの文字列なので、Excelで開いても 別段問題なく表示されるのですが、問題とする1列に入っている データが、ハイフンで結ばれた数字となっています。 実際の値は 1-2 や 2-3 や 6-4 などの値で、実は小学校の学年と クラスを表したものです。 よって、ハイフンの左側は学年である 1~6 が入り、右側にはクラスの 数字が入っています(1組から6組の絶対値 1~6)。 これらを Excel で開くと、この列がハイフンで結ばれているために 「日付と認識」されてしまい、1-2 の場合は 1月2日 という具合に 自動的に変換されて表示してしまいます。 これを自動変換させない方法はありますでしょうか? 該当データのトップに予め「'(アポストロフィー)」を付けて、文字列 として判断させようと試みたのですが、この方法だと、確かに日付変換 はされませんでしたが、アポストロフィーもそのまま表示されてしまい格好 が悪いです。「'1-2」といった具合です。 解決方法を教えてくださる方、宜しくお願い致します。

  • sedでカンマ区切りの列の置換を行いたい

    以下の様なファイルがあります。 sedコマンドを使用して、カンマで区切られたn番目のカラム目を 置換したい場合どうすればよいでしょうか。 "1","2","3","4","5","6" "1234","12","34567","abcd","efg","hi" "a c","d f","12 34","0","AAA","" "g i","j l","45 67","0","BBB","2021" "m o","p r","3 2 1","1","ABC","" "123","456","","abc","efg","hij" ①1カラム目以外置換(1カラム目以降削除) sed 's/\(.*\),.*,.*,.*,.*,.*/\1/g' test.csv ②最後の6カラム目以外置換(6カラム目以外削除) sed 's/.*,.*,.*,.*,.*,\(.*\)/\1/g' test.csv ③3カラム目を置換(3カラム目を「""」だけにしたい) sed -e 's/\(.*\),\(.*\),.*,\(.*\),\(.*\),\(.*\)/\1,\2,"",\3,\4,\5/g' test.csv とできたのですが、 表現がないというか、置換対象文字列の条件、表現が長いというか、全カラムを指定しているので、 少し、短くできないものでしょうか。 ①パターン sed 's/\([^,]*\),.*/\1/g' test.csv ②パターン sed "s/.*,\([^,]*\)$/\1/g" test.csv の様にできました。 ③パターン 思いう浮かばず これで、できているので間違いはないかとおもいますが、 どうなのでしょうか。 なにかいい案はないでしょうか?

  • データバインドで表示された文字の一部を表示させない

    アクセスのクエリーより、モジュールで作成したCSVファイルを、HTMLでデータバインド表示させています。 CSVの表の中には、日付と時刻というフィールドがあり、それぞれ、次の様に表示されています。 表示レコードの一例: 日付フィールド→2008/6/10 0:00 (日付の後ろに必ず 0:00がついてすしまっています) 時刻フィールド→1899/12/30 9:00:00 (時刻の前に必ず 1899/12/30がついてしまっています) 上記の 0:00 とか 1899/12/30 を ブラウザ側(HTML側)の小手先技で表示させない方法は無いでしょうか? <table datasrc="#ID1" border=1> <tr> <td><span datafld="Column1"></span></td> <td><span datafld="Column2"></span></td> <td><span datafld="Column3"></span></td> </tr> </table> ちなみに、Column1とColumn2 で、表示されるデータになります。 アクセス側でCSVを作成する段で解消すべきと思いますが、シス担当の権限割が違って手を出せないので(仮に手を出したとしても、アクセスの知識が無いので解決する力が無いので、私には無理と思います) よろしく、お願いします。

  • エクセルのシート間の関連

    エクセルでsheet1に名簿を、sheet2に出席簿を作りました。sheet1、sheet2ともに会費納入日の欄があり、sheet1に入力した日付が自動的にsheet2にも表示されるように、sheet2の該当欄に「='sheet1'!(sheet1のセル名)」という関数式を入力しました。 これで、sheet1に日付を入力(たとえば6/3など)するとsheet2にも同様の日付が表示されるのですが、sheet1の日付欄が未入力(空欄)の場合、sheet2には「1/0」と表示されてしまいます。 これをsheet1で空欄の場合はsheet2でも空欄になるようにしたいのです。どのようにすればよいでしょうか。 うまく説明できずにわかりにくいかと思いますが、よろしくお願いします。

  • エクセル 該当日付のデータの抽出方法

    1か月のシフト予定表から該当日のみを別シートに抽出したいのですがなかなかうまくいきません。エクセル関数に詳しい方いい方法教えてください。 元のシートは横に日付が並んでおり、縦は氏名が並んでいます。 予定シフトがあらかじめ組んであるのですが(班により決まっている)個別に希望休みをだしてもらい 他の出れる日と調整するために作成します。               11/1                        11/2         11/3  ・・・・ 氏名   /予定シフト/希望休み/勤務可能日か(の繰り返し)    勤務可能      勤務可能 秋山    A       ◇                            ○         ○ 稲毛    A       □         大森    休              ○ 加藤    休              △    久米    休 小山    休               咲山    B       □                                       ○            (※マークは有休か無休か、勤務確実にできるか場合によりできるか等の種別です) <別シート> 11/1  ←日付を入力すると上記のマークが入っている氏名のデータのみをまとめて一覧表示 氏名 /予定シフト/ 種別/ 勤務可能日/ 秋山   A       ◇     11/2        11/3 稲毛   A       □ 咲山   B       □     11/3  大森   休       ○ 加藤   休       △      休み希望でいつなら振替で勤務できるのかを表示させたいのです。 日付を入力して氏名、予定シフト、休暇種別の表示まではできるのかもしれませんが勤務可能日 のデータを表示することはできるのか、複雑で困っています。(>_<) よろしくお願いします。            

  • 2つのデータの統合方法を教えてください。

    以下の2つのcsvデータを統合したいと思います。  1.氏名,メールアドレス  2.氏名,住所,電話番号 上記のデータを「氏名」で紐付けして統合したいと思っています。  1.A,B         ⇒  A,B,C,D  2.A,C,D 具体的に確認したいことは、以下の2点です。  1.統合方法を知りたい。  2.1の方法で統合した場合で、氏名の共通がなかった場合は、   空欄で統合できる方法を知りたい。 以上、よろしくお願いいたします。

専門家に質問してみよう