|
UWSCプロを使っております。 だれかアドバイスにて私を助けてくれませんか?
15分ごとに現在CSVをダウンロードしてきて受注情報を半アナログ的にEXCELに張り付けております。
流れとしては以下のものです。 1.15分ごとにダウンロードしてきたCSVをEXCELに開く 2.指定箇所をコピーして、メインのファイル指定した場所の最終行へ張り付ける
CSVの中身は "ID","Site","title","site url",・・・・・ "OSAKE-CHUUMON22884","お酒屋さん","焼酎","ttp://",・・・・・
ここで質問なのですが最終行に張り付けする際に最終行から連番なのかをチェックを行い OSAKE-CHUUMON22884で終わっていて、次がOSAKE-CHUUMON22889の場合手 以下の風に自動的に補正してSAKE-CHUUMON22888という行を入れてからペースト処理を行いたいのです。
OSAKE-CHUUMON22887 お酒屋さん 焼酎 ttp:// OSAKE-CHUUMON22888 お酒屋さん 焼酎 ttp:// OSAKE-CHUUMON22889 お酒屋さん 焼酎 ttp://
もしくはもっとスマートな方法はありますか?
|
No.924 2015/02/23(Mon) 13:36:27
|
☆ Re: CSVファイルExcelに張り付ける際のチェック処理 / しろまさ |
|
|
csvならExcelで開かずにfopenで扱った方が楽なのでは? 最終行取得して文字列判断や最終行書込も簡単ですよ。
|
No.927 2015/02/23(Mon) 14:50:59
|
|
☆ Re: CSVファイルExcelに張り付ける際のチェック処理 / 酒屋さん |
|
|
>しろまささん クレジットカード会社の与信結果や、銀行の振込み有無なども巡回しUWSCで取り込むようにし、 決済があったら支払い済みステータスに変更するようにしている点と その他WEBサイトとの連携処理を続いて行っているため、 Excelは常時起動状態が必須となり張り付けが必要となるためその方法は厳しそうです。。 また数万件の受注情報が蓄積されているため、一旦閉じると起動に時間がかかるという点も御座います。
|
No.929 2015/02/23(Mon) 18:54:06
|
|
☆ Re: CSVファイルExcelに張り付ける際のチェック処理 / しろまさ |
|
|
件数的にそろそろExcelを卒業してDBに移行する段階では?
|
No.933 2015/02/24(Tue) 09:38:10
|
|
☆ Re: CSVファイルExcelに張り付ける際のチェック処理 / ざろん |
|
|
ペースト作業等はExcelのVBAに書き込み、 UWSCは呼び出す風にしてみてはいかがでしょうか?
IEを開いて15分おきに保存するのも、VBAから。 ExcelのVBAを資本?にしたほうが簡単なような気がします。
------------------------- Sub UWSC実行() Dim rChange As Range Dim sCommand As String Dim sScriptFile As String Dim EXE_PATHNAME As String Dim DQ As String DQ = """" EXE_PATHNAME = ThisWorkbook.Path & "\uwsc\uwsc.exe" ' // 実行する UWSC スクリプト sScriptFile = ThisWorkbook.Path & "\uwsc\TEST.UWS" ' // UWSC の起動オプションは UWSC のヘルプを参照 sCommand = DQ & EXE_PATHNAME & DQ & " " & _ DQ & sScriptFile & DQ
CreateObject("WScript.Shell").Run sCommand, vbNormalFocus, True End Sub -----------------Thisworkbook内-------------------- Private Sub Workbook_BeforeClose(Cancel As Boolean) Application.OnTime TimeValue(指定時刻), _ "Module1.全部開始", , Schedule:=False End Sub
Private Sub Workbook_Open() Call Module1.現在より一定時間後にマクロを実行する End Sub -----------------Module1内-------------------- Sub 現在より一定時間後にマクロを実行する() Dim WSH As Object, re As Long Set WSH = CreateObject("Wscript.Shell") Set WSH = CreateObject("WScript.Shell") 指定時刻 = Now + TimeValue("00:05:00") '現在時刻より何分後 ※2 待ち時間 = TimeValue("00:00:01") '指定時刻に他プロシージャが実行中の場合の待ち時間 ※2 Application.OnTime TimeValue(指定時刻), _ "Module1.全部開始" End Sub
Sub 全部開始() Dim WSH As Object, re As Long Set WSH = CreateObject("Wscript.Shell") Set WSH = CreateObject("WScript.Shell") re = WSH.Popup("3分程度かかります", 10, "10秒後に閉じます", vbYesNo + vbQuestion) If re = vbYes Or re = "-1" Then Call UWSC実行 Call 最終行へ貼り付け re = WSH.Popup("完了しました。", 2, "2秒後に閉じます", vbQuestion) End If Set WSH = Nothing 現在より一定時間後にマクロを実行する End Sub
Sub 最終行へ貼り付け() '何処に貼り付けたいのか分かりませんでした。 End sub
----------------- バグ等あるかもしれませんが…参考になれば幸いです。
|
No.934 2015/02/24(Tue) 11:35:45
|
|
☆ Re: CSVファイルExcelに張り付ける際のチェック処理 / 酒屋さん |
|
|
>しろまささん データベースも考えております。 素人コード数万行に渡るため移行に躊躇っていました。 今後処理を増やしていくとUWSCでは限界をむかえそうですので 再設計を検討してみます!
>ざろんさん VBAソースコードありがとうございます。 現時点でも一部処理pdf作成やメール送信をVBAで処理しております。 どの言語で処理をするのかを再度検討し再構築が必要そうですね。数十の UWSファイルとなっているためVBA移行も検討します。
とりあえず移行には相当時間かかりそうなのでUWSCで処理すできる方法を先に 自身で考えてみます。。
|
No.940 2015/02/25(Wed) 22:35:39
|
|
☆ Re: CSVファイルExcelに張り付ける際のチェック処理 / ざろん |
|
|
>とりあえず移行には相当時間かかりそうなのでUWSCで処理すできる方法を先に >自身で考えてみます。。
…そんなに時間かかりますか? 使っているUWSCファイルをVBA上で実行する とやれば UWSCファイルそのまま使えると思うのですが…
※ Excel2003で組んでるので、環境により上手く動かない 可能性があります。その際は修正してください。
Sub UWSC実行() Dim rChange As Range Dim sCommand As String Dim sScriptFile As String Dim EXE_PATHNAME As String Dim DQ As String DQ = """" EXE_PATHNAME = ThisWorkbook.Path & "\uwsc\uwsc.exe" ' // 実行する UWSC スクリプト sScriptFile = ThisWorkbook.Path & "\uwsc\TEST.UWS" ' // UWSC の起動オプションは UWSC のヘルプを参照 sCommand = DQ & EXE_PATHNAME & DQ & " " & _ DQ & sScriptFile & DQ
CreateObject("WScript.Shell").Run sCommand, vbNormalFocus, True End Sub
|
No.942 2015/02/26(Thu) 10:10:29
|
|
☆ Re: CSVファイルExcelに張り付ける際のチェック処理 / しろまさ |
|
|
> 今後処理を増やしていくとUWSCでは限界をむかえそうですので
DBをUWSCから(ADOで)操作する提案をしたつもりですが^^ 私はまだUWSCに限界を感じてませんね。まあいろいろ試して下さい。
|
No.943 2015/02/26(Thu) 13:20:14
|
|
☆ Re: CSVファイルExcelに張り付ける際のチェック処理 / 酒屋さん |
|
|
>ざろんさん 知識的に移行に時間がかかりそうです。 なるほど意外と楽にできそうですね! 私の環境で試してみます!!
>しろまささん 誤解与えて申し訳御座いません。 私のUWSC知識力では限界ということです。。
>DBをUWSCから(ADOで)操作する提案をしたつもりですが^^ 勉強しておきます、アドバイスありがとうございます!
皆様の知識力に恐れ入ります。素人すぎて話が噛み合わなく申し訳御座いません。 ここからは頂いたアドバイスをもとに残りの課題は自分で解決にチャレンジしようかと 思います。ありがとうございました!!
|
No.944 2015/02/26(Thu) 16:52:19
|
|