あるアプリケーションにデータ登録をするときに、現在はコマンドプロントから
コマンド(c:\>xxxxx -***** "name" "age" ・・・・)を打って登録しています。
最近急に、データ量が増えて手動で登録するのが困難になってきました。
現在このデータはエクセルで保存してあります。これからも、エクセルで
管理していく予定です。
そこで、エクセルに入力したものをエクセルVBAを使ってセルからデータを
取り出して、1件づつ自動でアプリケーションに登録するコマンドを発行したい
と考えています。
それか、エクセルのデータをCSV形式にしてC言語で作ろうかとも思っています。
実現したいことは
・データはエクセルで管理している。
・毎回手動でコマンドをたたいていたのを、プログラムで実現させたい。
(DOSにコマンドを発行する)
・データの入力はCSVを読むか、エクセルシート上でセルからひっぱって
くるか。
VBA、Cともに初心者です。どの言語でどういう風な形で
プログラムを作ればよいかわからず困っています。
実現するよい方法をおしえてください。よろしくおねがいします。
No.1
- 回答日時:
方向付けだけ。
Excel のデータを引っ張ってきたい、そして、コマンドラインから起動する、という条件を考えれば、
WSH が良いと思います。
C だと、Excel Book から直接値を引っ張ってくるのが少し面倒です。
参考URL:http://member.nifty.ne.jp/aya/wsh/index.htm
No.2ベストアンサー
- 回答日時:
エクセルあるデータというのは「"name" "age" ・・・・」の部分なんでしょうか、そうでしたら「c:\>xxxxx -***** 」の部分を先頭にくっつけて、バッチファイルにしてみたらどうでしょう。
例えばA1にname,B1にageがあればC1に
="c:\>xxxxx -***** " & A1 & " " & A2 ・・・・・・
という具合にし、C列をコピーし、テキストファイルに貼り付け拡張子batで保存すれば完了です。
もちろん「C列をコピーし、テキストファイルに貼り付け・・・」の部分を自動化するともっと楽になります。
あとは、コマンドが正常に出来ていることを確認してから、ダブルクリックで実行です。
No.3
- 回答日時:
こんにちは、honiyonです。
Perlが適任・・・ですが、この場合VBAも選択肢に入りますね。
Cは文字列処理が多いので不適格です。C++ + MFCであれば若干文字列処理が簡単になりますが、専用アプリケーションであればこのケースの場合はDelphiやC++Builderの方が簡単です。(TStringGridクラスでCSV読み込みが簡単)
個人的には ActivePerl等を使って、Perlでささっとスクリプト組んであげるに一票です。VBAですと新規データを作成する度にマクロを埋め込むのが手間になりそうなので。
参考になれば幸いです(..
No.4
- 回答日時:
>(1)アプリケーションにデータ登録をするときに
アプリケーションのソフト名、ソフトが組んである言語名はなんですか。
>(2)コマンド(c:\>xxxxx -***** "name" "age" ・・・・)を打って登録しています。
MS-DOS時代のソフトですか。
バッチファイルなど早晩止めるべきでしょう。
>(2’)企業秘密もあるでしょうが、どう言うデータを
どれくらいの数、どれくらいの頻度で入力しているのか、やや具体的に、開示してもらえないですか。
>(3)エクセルに入力したものを
(1)直接セルに入力する(2)フォームを作る(3)
テキストエディタで入力し、エクセルへインポートする。
それらの組み合わせ、など色々あります。工夫のしどころです。一通りではないということです。
>(4)エクセルで管理していく予定です。
勉強は大変ですが、理想ではアクセスで管理するのが一番でしょう。
>(5)エクセルに入力したものをエクセルVBAを使ってセルからデータを取り出して
基本的には簡単です。X=cells(i,j)でi行j列のセルのデータ1つ拾えます。
>(6)1件づつ自動でアプリケーションに登録するコマンド
ここが一番の難関です。アプリケーションがMS OFFICE群の1つなら、VBAで連携が取れる可能性があるが、それ以外
(本件多分それ以外らしい)だと、個別に勉強しないとならないし、出来るとも言えない、多分不可能です。VBAでもエクセル・アクセス以外は
単期間では勉強(資料集め+理解)が無理でしょう(私の挫折経験から)。
>(7)エクセルのデータをCSV形式にしてC言語で作ろうかとも
エクセルVBAで1行で済んでしまいます。Cなど考えなくてよい。現在自分に出来るからといって、拘らないこと。
>(8)毎回手動でコマンドをたたいていたのを、プログラムで実現させたい。
プログラムでデータは作れません。(規則的な一部のデータを除いて)。勿論ご存知だろうから表現が不適当。
具体的に何を言っているか、説明していない-->(2’)
>(9)データの入力はCSVを読むか、エクセルシート上でセルからひっぱってくるか。
オフラインバッチ処理なら(データを全て入力後、アプリにデータを一斉にいれて良い処理形態)アプリ側へCSVで渡せるようだから、それを使えば良い。
結論
(1)第1フェーズ
CSVで受け渡しで凌ぐ。
(2)第2フェーズ
直接データ受け渡しとか、(現行DOS時代?)アプリが事務系のものならVBAで組みなおすとか考える。
(3)WSH(#1ご回答)も、エクセル、アプリの上に立てるソフトという意味で、全自動化に近づけると言う点で、良い面があるかもしれない。
(4)データ入力は、一番の検討課題で、SEの力のだしどころ、人によって違いが出るところ、結果が違いが出る
ところだと思います。
No.5
- 回答日時:
私なら…
VBかC++(VC++/MFCかC++Builder/VCL)かDelphi。
ExcelのデータをCSV化すること自体が無駄なので、データアクセス系のコントロールを持つ処理系を使ってExcelブックから直接データを取り込みます。
とりえずは「Excelからデータ取り込み→DOSプログラムを起動」というアプリケーションをつくっておいて、最終的に全機能(DOSプログラムの機能)を取り込む形にすると思います。
No.6
- 回答日時:
EXCEL VBAでsheet dataをshellコマンドを使って直接流し込むだけ
じゃダメなんですか?
以下、サンプル
Sub test()
tx = "c:\ec.bat xx"
retval = Shell(tx)
End Sub
c:\ec.bat の中身
echo %1 > c:\ec.log
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルでcsvファイルを開いてVBAを使いたい 7 2022/04/28 11:12
- Access(アクセス) Accessのクエリの結果を、既存のエクセルに追加したい 2 2022/07/31 22:44
- Excel(エクセル) VBA セルの値と同じ名前のシートにデータを貼り付けするやり方を教えてください 2 2022/05/17 16:26
- ソフトウェア エクセル_データ処理_変化点検出について 1 2022/09/20 18:25
- Excel(エクセル) CSVファイルがカンマ区切りにならない。対処法を教えていただきたいです。 仕事でSMS一斉送信ができ 2 2022/07/01 21:24
- その他(データベース) 業務用のデータベースサーバーの選び方について 4 2022/11/22 10:22
- Word(ワード) LibreOfficeで数年保存しているデータの変更作業 4 2022/07/08 17:15
- Excel(エクセル) 更新前と更新後の差分をVBAを使って抜き出したい 5 2023/06/01 14:35
- ソフトウェア データ入力のインターフェースについて 2 2022/09/27 09:07
- Excel(エクセル) Powershell エクセル検索 完全一致の方法 1 2022/06/05 20:19
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルから、パワーポイント...
-
キャッシュとバッファの違いは?
-
値がこの列の整合性制約に違反...
-
Access 外部データ インポー...
-
アクセスVBAからエクセルの操作
-
linuxのシェルかpythonでsqlのc...
-
自作Androidアプリのデータ引き...
-
スタライズとは、どういう意味...
-
CSV形式での集計
-
CD-Rに入っているはずのデータ...
-
ホームページ上のCSVファイルを...
-
Thunderbirdのインポートの処理...
-
AS400へAccessから接続す...
-
今年亡くなった有名人を一発で...
-
コンピュータ用語、データベー...
-
Microsoft Accessについて
-
汎用カード型のデータベースソ...
-
データベースの最適化をマクロ...
-
リスト形式の表とデータベース...
-
SQLを使いこなしている人が ETL...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
キャッシュとバッファの違いは?
-
VB.netのADOってなんですか?
-
Thunderbirdのインポートの処理...
-
SQL Server にファイルを登録、...
-
エクセルから、パワーポイント...
-
スタライズとは、どういう意味...
-
値がこの列の整合性制約に違反...
-
UNIX時間をEXCEL上で日付・時間...
-
Access 外部データ インポー...
-
CSVファイルの重複チェック
-
LVMでHDDが壊れた時の対応
-
C#でint型をIntPtr型に変換した...
-
EXCELの最大データ数
-
エクセルでのテプララベル作成
-
Perlで、「が」を、「...
-
VBA 連続する名前ごとに集計
-
Accessでタブ区切りのテキスト...
-
VBでXMLデータをMS-ACCESS2000...
-
エクセルのマクロ
-
REST APIでkintoneのレコード追...
おすすめ情報