!extend:checked:vvvvv:1000:512
↑同じ内容を2行貼り付ける
ExcelのVBAに関する質問スレです
コード書き込みや作成依頼もOK
※前スレ
Excel VBA 質問スレ Part66
https://mevius.5ch.net/test/read.cgi/tech/1589085825/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
探検
Excel VBA 質問スレ Part67
レス数が1000を超えています。これ以上書き込みはできません。
1デフォルトの名無しさん (ワッチョイ 33da-3+hg)
2020/06/26(金) 02:01:29.56ID:uDfmpksE0906デフォルトの名無しさん (ワッチョイ 1fda-YpYZ)
2020/08/25(火) 14:23:43.06ID:QWQtRQIZ0 タブとか改行(CR+LF)とかバイナリデータが混ざっているとか機種依存文字とか
文字コードの違いとか色々あるからな
文字コードの違いとか色々あるからな
907デフォルトの名無しさん (ワッチョイ 7f2f-3Lde)
2020/08/25(火) 14:28:30.69ID:at7FUvm30 まあ一番怪しいのは、文字コード関係でテキストがちゃんと読めてない
ちゃんと読みこんだデータのバイナリ確認してみろ
ちゃんと読みこんだデータのバイナリ確認してみろ
908デフォルトの名無しさん (ワッチョイ 1f7c-u2+K)
2020/08/25(火) 14:43:48.86ID:JyPo3Qi40 line inputはSJISで読み込む
バイナリ確認しなくても元ファイルがSJISであればそれでいい
バイナリ確認しなくても元ファイルがSJISであればそれでいい
909デフォルトの名無しさん (ラクッペペ MM4f-pqEW)
2020/08/25(火) 15:50:41.61ID:LoAGT2GVM すみません892です
デバッガで見たら
全部の行で1を返してました
つまり全行、先頭は\マークみたいです
1文字目は無視するようにしたら
意図通りの動きになりました
デバッガで見たら
全部の行で1を返してました
つまり全行、先頭は\マークみたいです
1文字目は無視するようにしたら
意図通りの動きになりました
910デフォルトの名無しさん (ワッチョイ ff02-YpYZ)
2020/08/25(火) 16:00:19.40ID:UEyqjSRY0911デフォルトの名無しさん (ワッチョイ 1f7c-u2+K)
2020/08/25(火) 16:23:37.10ID:JyPo3Qi40 先頭が\かどうかすらも確認しないのか…
912デフォルトの名無しさん (オッペケ Sr73-rg60)
2020/08/25(火) 17:36:53.32ID:Lm28KJF/r VBAからPowerShellで外部コマンドを実行して出力内容を加工したいのですが、うまくいきません
現在は、Execの引数に下記のように書いてます
powershell -Command "& Invoke-Expression 'コマンドのパス\コマンド.exe' -option1 -option2 "foo bar" >>'一時ファイル.txt'"
どうしたらよいでしょうか
現在は、Execの引数に下記のように書いてます
powershell -Command "& Invoke-Expression 'コマンドのパス\コマンド.exe' -option1 -option2 "foo bar" >>'一時ファイル.txt'"
どうしたらよいでしょうか
913デフォルトの名無しさん (アウアウウー Sa63-3MaI)
2020/08/25(火) 18:00:08.63ID:YUvg5uyAa >>909
1件目でも入っているのかな?
1件目でも入っているのかな?
914デフォルトの名無しさん (アウアウカー Sa13-tqqx)
2020/08/25(火) 18:12:08.06ID:mPnhNdWta テキスト全行読み込みしてsplitしてる説
んで\rでsplitして\nが先頭に来てるんじゃね
んで\rでsplitして\nが先頭に来てるんじゃね
915デフォルトの名無しさん (ワッチョイ 9f40-JHA7)
2020/08/25(火) 20:46:10.83ID:+ct4ya2Y0 >>912
Exec("powershell -Command Invoke-Expression 'コマンドのパス\コマンド.exe' -option1 -option2 'foo bar' >> '一時ファイル.txt'")
Exec("powershell -Command Invoke-Expression 'コマンドのパス\コマンド.exe' -option1 -option2 'foo bar' >> '一時ファイル.txt'")
916デフォルトの名無しさん (ラクッペペ MM4f-NoNb)
2020/08/25(火) 20:53:13.85ID:4vNIHvGrM shell でいいのにわざわざ外部オブジェクト使う人っているよね
917デフォルトの名無しさん (アウアウウー Sa63-/2iM)
2020/08/25(火) 21:28:28.78ID:n9RIifSya >>914
改行コードは別に文字列としての\が入ってる訳じゃないだろ
改行コードは別に文字列としての\が入ってる訳じゃないだろ
918デフォルトの名無しさん (オッペケ Sr73-rg60)
2020/08/25(火) 22:12:02.97ID:Lm28KJF/r >>915
ありがとうございます
もう一点よろしいでしょうか
標準出力にUnicodeで吐き出すコンソールアプリの出力を、Wscript.Shell.ExecのStdOutを使用して読み込みたいのですが、文字化けします
個人情報を扱うのでできれば一時ファイルを作らずに作業したいのですが、Unicodeの標準出力を直接読み込む方法は無いでしょうか
ありがとうございます
もう一点よろしいでしょうか
標準出力にUnicodeで吐き出すコンソールアプリの出力を、Wscript.Shell.ExecのStdOutを使用して読み込みたいのですが、文字化けします
個人情報を扱うのでできれば一時ファイルを作らずに作業したいのですが、Unicodeの標準出力を直接読み込む方法は無いでしょうか
919デフォルトの名無しさん (テテンテンテン MM4f-Is5t)
2020/08/25(火) 22:59:12.42ID:8Q4E/UJjM920デフォルトの名無しさん (ワッチョイ 118e-WkEz)
2020/08/26(水) 01:37:45.74ID:zCSTsYdn0 >>918
スレチだろ、厚かましい
スレチだろ、厚かましい
921デフォルトの名無しさん (ワッチョイ 452c-VQ5f)
2020/08/26(水) 02:00:19.04ID:BpaQECb00 >>918
オプションなどで、文字コードを指定できないの?
オプションなどで、文字コードを指定できないの?
922デフォルトの名無しさん (ワッチョイ 7901-yRqa)
2020/08/26(水) 02:56:47.46ID:oEB3gdtA0 これから新規に作る形式の文字コードは、UTF-8とGB18030の二択じゃないでしょうかね。
923デフォルトの名無しさん (オッペケ Sr51-cLD7)
2020/08/26(水) 11:13:08.29ID:DBm/bRJ+r >>921
調べたところわかりませんでした
Unicodeの文字が欠落するのでSJISに変換して流すのも避けたいです
一晩考えてPowerShell側でBase64エンコードしてからVBA側でデコードしてみようと考え直しました
失礼しました
調べたところわかりませんでした
Unicodeの文字が欠落するのでSJISに変換して流すのも避けたいです
一晩考えてPowerShell側でBase64エンコードしてからVBA側でデコードしてみようと考え直しました
失礼しました
924デフォルトの名無しさん (オッペケ Sr51-cLD7)
2020/08/26(水) 11:25:02.41ID:DBm/bRJ+r ちなみに、Wscript.Shell.Execに渡せるコマンドラインって255文字までのような制限があるのでしょうか
コンソール側で動いたコマンドラインがExecからだと動かなかったりするので
コンソール側で動いたコマンドラインがExecからだと動かなかったりするので
925デフォルトの名無しさん (ワッチョイ 61da-1etN)
2020/08/26(水) 19:01:16.17ID:vVfdbk8D0926デフォルトの名無しさん (ワッチョイ 61da-1etN)
2020/08/26(水) 19:03:04.71ID:vVfdbk8D0 powershellか。
ごめん、関係ないわ。
ごめん、関係ないわ。
927デフォルトの名無しさん (オッペケ Sr51-cLD7)
2020/08/26(水) 19:09:15.11ID:DBm/bRJ+r >>926
ありがとうございます。
PowerShell上で動作を確認したワンライナースクリプトをExecで実行したら動かなかったもので、特に根拠があって疑ってる訳じゃないです。
こちらはPS1ファイルを用意して実行することにしました。
ありがとうございます。
PowerShell上で動作を確認したワンライナースクリプトをExecで実行したら動かなかったもので、特に根拠があって疑ってる訳じゃないです。
こちらはPS1ファイルを用意して実行することにしました。
928デフォルトの名無しさん (オッペケ Sr51-cLD7)
2020/08/26(水) 19:15:01.39ID:DBm/bRJ+r ところで、ADODB.Streamに書き込んだテキストをCSVとしてパースしてRecordSetに読み込む方法をどなたかご存知ないでしょうか
一時ファイルを保存すればいいのですがオンメモリでやれたらそちらの方がありがたいです
同じADODBクラスなので方法がありそうだなと思い調べてみたのですが…
一時ファイルを保存すればいいのですがオンメモリでやれたらそちらの方がありがたいです
同じADODBクラスなので方法がありそうだなと思い調べてみたのですが…
929デフォルトの名無しさん (ワッチョイ 118e-WkEz)
2020/08/26(水) 20:35:45.89ID:zCSTsYdn0 >>928
厚かましいスレチはいい加減にしろ
厚かましいスレチはいい加減にしろ
930デフォルトの名無しさん (ワッチョイ ae02-1etN)
2020/08/26(水) 20:40:23.56ID:SKzt3LIS0 ノイズが発生してるけど無視していいよ
知ってて答えたい人が答えると思うし
知ってて答えたい人が答えると思うし
931デフォルトの名無しさん (ワッチョイ 61da-1etN)
2020/08/26(水) 22:47:53.03ID:vVfdbk8D0932デフォルトの名無しさん (ワッチョイ 0de6-xiBb)
2020/08/26(水) 22:50:24.69ID:Xm7NIhRp0 できないわけじゃない
1文字づつ解析とか馬鹿らしくてやってられないから一発でできる方法を聞いておる
1文字づつ解析とか馬鹿らしくてやってられないから一発でできる方法を聞いておる
933デフォルトの名無しさん (ワッチョイ 02b5-lmXr)
2020/08/26(水) 22:52:29.85ID:FaIObZsK0 一年他部署に応援行ってて戻ってきたが
その間に転属されてた人に
これがあれば一覧のデータを一気に出力できるからマクロの使い方だけは覚えてね
マクロとかわかる?とにかく使い方おぼえて
と言われた
俺が応援行く前に作って課に展開したマクロやんけ…
その間に転属されてた人に
これがあれば一覧のデータを一気に出力できるからマクロの使い方だけは覚えてね
マクロとかわかる?とにかく使い方おぼえて
と言われた
俺が応援行く前に作って課に展開したマクロやんけ…
934デフォルトの名無しさん (ベーイモ MM16-4W6K)
2020/08/27(木) 10:45:53.98ID:M3gK7ks0M strconvで文字列"試験"をUnicodeに変換すると、変な文字に変換されるんだけど解決策ありますか?
StrConv(StrConv("試験",vbUnicode),vbFromUnicode)
の結果が、"試験"であってほしいんだけど、別のよくわからない文字に変換される
StrConv(StrConv("試験",vbUnicode),vbFromUnicode)
の結果が、"試験"であってほしいんだけど、別のよくわからない文字に変換される
935デフォルトの名無しさん (オッペケ Sr51-cLD7)
2020/08/27(木) 10:56:45.12ID:EdbkG5X3r >>931
情報小出しですみません。
UTF8で標準出力に個人情報含むCSVを吐き出すコンソールアプリがありまして、それを一時ファイルを使用せずにVBAに読み込むのが目的です。
Wscript.Exec.StdOutを使用したところUTF8が文字化けしてしまい、PowerShell上でByte配列化→Base64エンコードして吐き出すことで、VBAでCSVのStringを得るところまではできました。
情報小出しですみません。
UTF8で標準出力に個人情報含むCSVを吐き出すコンソールアプリがありまして、それを一時ファイルを使用せずにVBAに読み込むのが目的です。
Wscript.Exec.StdOutを使用したところUTF8が文字化けしてしまい、PowerShell上でByte配列化→Base64エンコードして吐き出すことで、VBAでCSVのStringを得るところまではできました。
936デフォルトの名無しさん (ワッチョイ 0d7c-JMbW)
2020/08/27(木) 10:58:22.12ID:W5jLLhyA0 >>934
shiftjisで表示してんじゃないの
shiftjisで表示してんじゃないの
937デフォルトの名無しさん (オッペケ Sr51-cLD7)
2020/08/27(木) 11:04:53.94ID:EdbkG5X3r VBAでBase64デコードしたByte配列をADODB.Streamにバイナリ書き込み・UTF8読み込みすることでString変数に収めるところまでは行けました。
ここから、ADODB.Connectionを使用してADODB.Streamの内容をCSVとしてパースしたいのですが、ネットで見られるサンプルコードはファイルを読み込むものばかりです。
試しにADODB.Connection.Open ADODB.Streamとしてみましたが、うまく行きません。
現在ADODBのリファレンスに目を通していて、関係の有りそうなプロパティを見て回っているのですが、方法をご存知の方いらっしゃればご教示いただけるとありがたいです。
ここから、ADODB.Connectionを使用してADODB.Streamの内容をCSVとしてパースしたいのですが、ネットで見られるサンプルコードはファイルを読み込むものばかりです。
試しにADODB.Connection.Open ADODB.Streamとしてみましたが、うまく行きません。
現在ADODBのリファレンスに目を通していて、関係の有りそうなプロパティを見て回っているのですが、方法をご存知の方いらっしゃればご教示いただけるとありがたいです。
938デフォルトの名無しさん (ワッチョイ ae02-1etN)
2020/08/27(木) 11:29:45.37ID:h0aAGvNz0939デフォルトの名無しさん (ワッチョイ 452c-VQ5f)
2020/08/27(木) 11:35:18.54ID:UMnMnU6h0 WSH は、CP932 だけじゃないの?
もうWSHは、Microsoft もサポートしていないのでは?
WSH, VBScript のスレのスレ主、ピッコロ大魔王に聞けば?
漏れは、Ruby スクリプトをダブルクリックで起動したい場合に、WSHを使っているけど、
その際、Ruby側で、CP932・UTF-8 を変換している。
または、NKF というモジュールもある
もうWSHは、Microsoft もサポートしていないのでは?
WSH, VBScript のスレのスレ主、ピッコロ大魔王に聞けば?
漏れは、Ruby スクリプトをダブルクリックで起動したい場合に、WSHを使っているけど、
その際、Ruby側で、CP932・UTF-8 を変換している。
または、NKF というモジュールもある
940デフォルトの名無しさん (ドコグロ MM22-YRmH)
2020/08/27(木) 11:58:06.46ID:tH7sxKPhM >>934
そりゃそうだろ…
Unicode文字列をShift-JISだと思ってUnicodeに変換して、それを更にUnicodeだと思ってShift-JISに変換して何をしたいんだ?
やりたいのは
StrConv(StrConv("試験", vbFromUnicode), vbUnicode)
かな?
そりゃそうだろ…
Unicode文字列をShift-JISだと思ってUnicodeに変換して、それを更にUnicodeだと思ってShift-JISに変換して何をしたいんだ?
やりたいのは
StrConv(StrConv("試験", vbFromUnicode), vbUnicode)
かな?
941デフォルトの名無しさん (ベーイモ MM16-4W6K)
2020/08/27(木) 12:21:37.52ID:M3gK7ks0M AddDllDirectory関数の引数にパスを渡したい
この関数の引数はUnicode文字列をである必要があるから、StrConvでUnicode変換してから渡す
変換がうまく行く文字だけのパスなら、AddDllDirectory関数は成功するが、変換がうまくいかない文字が含まれるパスだと失敗する
この関数の引数はUnicode文字列をである必要があるから、StrConvでUnicode変換してから渡す
変換がうまく行く文字だけのパスなら、AddDllDirectory関数は成功するが、変換がうまくいかない文字が含まれるパスだと失敗する
942デフォルトの名無しさん (ワッチョイ 0d7c-JMbW)
2020/08/27(木) 12:24:57.51ID:W5jLLhyA0 >>941
vbUnicodeのstrconvだけじゃいかんの
vbUnicodeのstrconvだけじゃいかんの
943デフォルトの名無しさん (ベーイモ MM16-4W6K)
2020/08/27(木) 12:31:49.04ID:M3gK7ks0M >>942
それが失敗するから、vbFromUnicodeでもう戻したら案の定変になってた
それが失敗するから、vbFromUnicodeでもう戻したら案の定変になってた
944デフォルトの名無しさん (ワッチョイ ae02-1etN)
2020/08/27(木) 12:49:42.68ID:h0aAGvNz0 変換がうまくいく文字列
変換がうまくいかない文字列
それぞれ教えてよ
似たような流れ多い?
変換がうまくいかない文字列
それぞれ教えてよ
似たような流れ多い?
945デフォルトの名無しさん (ワッチョイ 822f-VQ5f)
2020/08/27(木) 13:18:08.14ID:XBcyB/ra0 なぜうまくいかないというコードを出さないのか
とりあえずEXCEL関係ないしVBA何でもスレ行けや
とりあえずEXCEL関係ないしVBA何でもスレ行けや
946デフォルトの名無しさん (ベーイモ MM16-4W6K)
2020/08/27(木) 13:21:23.95ID:M3gK7ks0M ・成功
日本、解析、実
あ~む、ア~ミ、濁音、半濁音
・失敗
試験、行、め~ん、ム~ン、ゃゅょ、ャュョ
日本、解析、実
あ~む、ア~ミ、濁音、半濁音
・失敗
試験、行、め~ん、ム~ン、ゃゅょ、ャュョ
947デフォルトの名無しさん (ワッチョイ 0d7c-JMbW)
2020/08/27(木) 13:28:24.20ID:W5jLLhyA0 strconvが失敗するって時点で、何かの勘違いがあるとしか思えない
948デフォルトの名無しさん (ワッチョイ ae02-1etN)
2020/08/27(木) 14:18:18.49ID:h0aAGvNz0949デフォルトの名無しさん (ベーイモ MM16-4W6K)
2020/08/27(木) 17:02:04.95ID:DiWyHVVAM AddDllDirectory(StrConv(パス,vbUnicode))ってコールしたときに
パスに特定文字が含まれると失敗、含まれないと成功
文字の例は>>946のとおり
明らかにStrConvの文字コード変換がおかしいと思うんだけど
ちなみに第2引数をvbFromUnicodeにすると、どんな文字列でもAddDllDirectoryは失敗する
StrConvを噛ませずに、パスを渡した場合も必ず失敗する
パスに特定文字が含まれると失敗、含まれないと成功
文字の例は>>946のとおり
明らかにStrConvの文字コード変換がおかしいと思うんだけど
ちなみに第2引数をvbFromUnicodeにすると、どんな文字列でもAddDllDirectoryは失敗する
StrConvを噛ませずに、パスを渡した場合も必ず失敗する
950ななし (ワッチョイ 822f-VQ5f)
2020/08/27(木) 18:30:06.72ID:XBcyB/ra0 AddDllDirectoryの引数をポインタでとって文字列のポインタ渡せば動く気がする
951デフォルトの名無しさん (ワッチョイ 61da-1etN)
2020/08/27(木) 19:32:16.28ID:nk+dwtaU0 >>935
やっぱわからん。
「UTF8で標準出力に個人情報含むCSV」って、既にその時点でCSVなんじゃないの?
CSVなのにカンマ区切りじゃなくてCSVとして扱えないとか?(何じゃそりゃ)
UTF8が問題ならschema.ini作って回避できない?
schema.ini使う時点で一時ファイルだわって言われたらそれまでだけど。
やっぱわからん。
「UTF8で標準出力に個人情報含むCSV」って、既にその時点でCSVなんじゃないの?
CSVなのにカンマ区切りじゃなくてCSVとして扱えないとか?(何じゃそりゃ)
UTF8が問題ならschema.ini作って回避できない?
schema.ini使う時点で一時ファイルだわって言われたらそれまでだけど。
952デフォルトの名無しさん (ドコグロ MM55-YRmH)
2020/08/27(木) 21:54:27.65ID:M2V0MDYQM953デフォルトの名無しさん (オッペケ Sr51-cLD7)
2020/08/28(金) 03:17:22.48ID:0Wmy1rK2r >>951
CSVファイルではなく、CSVの文字列になります
これをファイルに保存することなくパースしたかったのですが、方法が見つかりませんでした。
セル内カンマやセル内改行も含むCSVでしたので、自分でパースするのもちょっと大変でした。
MITライセンスのコードを見つけたのでそれを組み込んで処理しようと思います。
ありがとうございました。
CSVファイルではなく、CSVの文字列になります
これをファイルに保存することなくパースしたかったのですが、方法が見つかりませんでした。
セル内カンマやセル内改行も含むCSVでしたので、自分でパースするのもちょっと大変でした。
MITライセンスのコードを見つけたのでそれを組み込んで処理しようと思います。
ありがとうございました。
954デフォルトの名無しさん (ワッチョイ ae02-1etN)
2020/08/28(金) 09:32:14.87ID:WbcjPKym0955デフォルトの名無しさん (ワッチョイ 452c-VQ5f)
2020/08/28(金) 10:58:16.31ID:CzRmvnjE0 Ruby なら標準で、CSV モジュールが付いている。
他にも、JSON, YAML などもパースできる
プログラミングするなら、ちゃんとしたプログラミング言語を使わないと、ダメ!
汎用的な機能を、自作して使うと、バグってばかりで仕事にならない
他にも、JSON, YAML などもパースできる
プログラミングするなら、ちゃんとしたプログラミング言語を使わないと、ダメ!
汎用的な機能を、自作して使うと、バグってばかりで仕事にならない
956デフォルトの名無しさん (ワッチョイ 822f-25h5)
2020/08/28(金) 12:55:46.61ID:dgSTJFNK0 そもそもここ最強のcsvパーサEXCELのVBAすれなんだが
957デフォルトの名無しさん (テテンテンテン MM66-nUCc)
2020/08/28(金) 13:14:57.90ID:RBhGMmXKM 確かにExcelは世界一利用者の多いCSVパーサかも
958デフォルトの名無しさん (ワッチョイ 6e63-VQ5f)
2020/08/28(金) 23:36:31.47ID:KRJ+x4lY0 エクセル2010を使ってます。
ファイル名の先頭に前月の年と月を付けたいと思い
下のような式を書きました。
本日動かすと「202007」と付きます。
しかし先頭の20を削除し2007としたいです。
式をどのようになおしたら良いか自力ではわかりません。
お恥ずかしいですがご教示いただきたく。
newfilename = Format(Year(DateSerial(Year(Date), Month(Date) - 1, Day(Date))), "00") _
& Format(Month(DateSerial(Year(Date), Month(Date) - 1, Day(Date))), "00") _
& currentfilename
ファイル名の先頭に前月の年と月を付けたいと思い
下のような式を書きました。
本日動かすと「202007」と付きます。
しかし先頭の20を削除し2007としたいです。
式をどのようになおしたら良いか自力ではわかりません。
お恥ずかしいですがご教示いただきたく。
newfilename = Format(Year(DateSerial(Year(Date), Month(Date) - 1, Day(Date))), "00") _
& Format(Month(DateSerial(Year(Date), Month(Date) - 1, Day(Date))), "00") _
& currentfilename
959デフォルトの名無しさん (ワッチョイ 0d7c-JMbW)
2020/08/28(金) 23:42:18.02ID:6tfEVBvr0 >>958
ヘルプでformatの書式見た?
ヘルプでformatの書式見た?
960デフォルトの名無しさん (ワッチョイ 06c9-1etN)
2020/08/28(金) 23:47:50.15ID:X3zZxqmk0 newfilename = Format(DateSerial(Year(Now), Month(Now) - 1, 1), "yymm")
961デフォルトの名無しさん (ワッチョイ 52ee-yRqa)
2020/08/29(土) 00:17:46.05ID:58gyTBSb0962デフォルトの名無しさん (ワッチョイ 6e63-VQ5f)
2020/08/29(土) 00:20:59.98ID:M2c3GV/+0963デフォルトの名無しさん (ラクッペペ MM66-i8JQ)
2020/08/29(土) 00:54:05.51ID:OUCG9mQHM 00014500-1
のような、数字以外が入ってる文字列から
前ゼロを取りたいです。
どうすれば良いでしょうか
ゼロは先頭以外にもあるので
replaceで削除するのは無理です。
のような、数字以外が入ってる文字列から
前ゼロを取りたいです。
どうすれば良いでしょうか
ゼロは先頭以外にもあるので
replaceで削除するのは無理です。
964デフォルトの名無しさん (ワッチョイ 118e-WkEz)
2020/08/29(土) 01:26:16.94ID:uG4P+RAn0965デフォルトの名無しさん (ワッチョイ a5ce-xiBb)
2020/08/29(土) 01:42:59.60ID:haGEh7ED0 >>963
020-040 は 20-40 にすればいいの?
020-040 は 20-40 にすればいいの?
966デフォルトの名無しさん (ラクッペペ MM66-i8JQ)
2020/08/29(土) 04:49:38.60ID:OUCG9mQHM967デフォルトの名無しさん (ブーイモ MMf6-xiBb)
2020/08/29(土) 05:11:12.22ID:nRBZReLEM >>966
Sub Macro1()
Dim s1 As String
Dim s2 As String
Dim s3 As String
Dim c As String
Dim i As Integer
s1 = "001100-004400-007700" '入力
s2 = ""
s3 = ""
For i = 1 To Len(s1)
c = Mid(s1, i, 1)
If "0" <= c And c <= "9" Then
s2 = s2 & c
Else
If s2 <> "" Then
s3 = s3 & s2 * 1 & c
s2 = ""
Else
s3 = s3 & c
End If
End If
Next
If s2 <> "" Then
s3 = s3 & s2 * 1
End If
Debug.Print s3 '出力
End Sub
Sub Macro1()
Dim s1 As String
Dim s2 As String
Dim s3 As String
Dim c As String
Dim i As Integer
s1 = "001100-004400-007700" '入力
s2 = ""
s3 = ""
For i = 1 To Len(s1)
c = Mid(s1, i, 1)
If "0" <= c And c <= "9" Then
s2 = s2 & c
Else
If s2 <> "" Then
s3 = s3 & s2 * 1 & c
s2 = ""
Else
s3 = s3 & c
End If
End If
Next
If s2 <> "" Then
s3 = s3 & s2 * 1
End If
Debug.Print s3 '出力
End Sub
968デフォルトの名無しさん (ワッチョイ 45da-1etN)
2020/08/29(土) 05:37:03.41ID:IjPanbf80 入力データにピリオドが入ることはないのか?
969デフォルトの名無しさん (ワッチョイ 45da-1etN)
2020/08/29(土) 05:42:52.81ID:IjPanbf80 あ、平気か
970デフォルトの名無しさん (ワッチョイ 6101-u5JS)
2020/08/29(土) 06:40:50.33ID:VAMGDei30 そんな難しいことしなくてもこれでよくないか
Sub test()
Dim testStr As String
Dim rtnStr As String
Dim cnvNm As Long
testStr = "000070-00100-01230"
For i = 1 To Len(testStr) + 1
s = Mid(testStr, i, 1)
'数値か判定
If (IsNumeric(s)) Then
strNum = strNum + s
Else
'数値に変換
cnvNm = Val(strNum)
rtnStr = rtnStr + Trim(str(cnvNm)) + s
strNum = ""
End If
Next
End Sub
Sub test()
Dim testStr As String
Dim rtnStr As String
Dim cnvNm As Long
testStr = "000070-00100-01230"
For i = 1 To Len(testStr) + 1
s = Mid(testStr, i, 1)
'数値か判定
If (IsNumeric(s)) Then
strNum = strNum + s
Else
'数値に変換
cnvNm = Val(strNum)
rtnStr = rtnStr + Trim(str(cnvNm)) + s
strNum = ""
End If
Next
End Sub
971デフォルトの名無しさん (ワッチョイ 6101-u5JS)
2020/08/29(土) 06:44:47.53ID:VAMGDei30 区切り文字が-だけならsplitして終わる気もするけど
何が入ってるかわからんなら1文字ずつみるしかないのかな
何が入ってるかわからんなら1文字ずつみるしかないのかな
972デフォルトの名無しさん (ラクッペペ MM66-i8JQ)
2020/08/29(土) 07:17:10.36ID:OUCG9mQHM 区切りはハイフンだけです
すみません
分けて各々数字扱いすれば良かったですね
書いてみます
すみません
分けて各々数字扱いすれば良かったですね
書いてみます
973デフォルトの名無しさん (ワッチョイ 6101-u5JS)
2020/08/29(土) 08:56:00.81ID:VAMGDei30 デリミタが"-"だけならもっと簡単になるね
Sub test2()
Dim strArray() As String
Dim rtnStr As String
testStr = "000070-00100-01230"
strArray = Split(testStr, "-", , vbTextCompare)
For i = 0 To UBound(strArray)
rtnStr = rtnStr + Trim(str(Val(strArray(i))))
If(i <> UBound(strArray)) Then rtnStr = rtnStr + "-"
Next
End Sub
文字列で連結して返す必要なければsplitして数値変換でおわり
Sub test2()
Dim strArray() As String
Dim rtnStr As String
testStr = "000070-00100-01230"
strArray = Split(testStr, "-", , vbTextCompare)
For i = 0 To UBound(strArray)
rtnStr = rtnStr + Trim(str(Val(strArray(i))))
If(i <> UBound(strArray)) Then rtnStr = rtnStr + "-"
Next
End Sub
文字列で連結して返す必要なければsplitして数値変換でおわり
974デフォルトの名無しさん (ワッチョイ 4549-1etN)
2020/08/29(土) 09:09:11.49ID:dZuEnb/K0 しかし今の子はこの程度も分からないほど論理的思考がないのか、
それともこのスレの住民を試そうとしているのか
それともこのスレの住民を試そうとしているのか
975デフォルトの名無しさん (ワッチョイ 2992-Lsvc)
2020/08/29(土) 09:45:04.26ID:SoqUgBeq0 使う関数提示するくらいで解決できなきゃ放置でいいんじゃね?
976デフォルトの名無しさん (ワッチョイ 45cc-pyQU)
2020/08/29(土) 10:00:53.07ID:pUlaC/XX0 For r = 1 To 12000
処理
PDF出力
という処理をしているのですが、これだとPDFが12000ファイルになって、全て出力した後で結合するのですが
これを12000枚程度をPDF1ファイルで出力する方法をおしえてください
処理
PDF出力
という処理をしているのですが、これだとPDFが12000ファイルになって、全て出力した後で結合するのですが
これを12000枚程度をPDF1ファイルで出力する方法をおしえてください
977デフォルトの名無しさん (ブーイモ MMf6-xiBb)
2020/08/29(土) 10:07:03.64ID:m9X9gCs/M Sub test2()
Dim strArray() As String
Dim testStr As String
Dim rtnStr As String
testStr = "000070-00100-01230"
strArray = Split(testStr, "-")
For i = 0 To UBound(strArray)
strArray(i) = strArray(i) * 1
Next
rtnStr = Join(strArray, "-")
Debug.Print rtnStr
End Sub
Dim strArray() As String
Dim testStr As String
Dim rtnStr As String
testStr = "000070-00100-01230"
strArray = Split(testStr, "-")
For i = 0 To UBound(strArray)
strArray(i) = strArray(i) * 1
Next
rtnStr = Join(strArray, "-")
Debug.Print rtnStr
End Sub
978デフォルトの名無しさん (ワッチョイ 61da-1etN)
2020/08/29(土) 10:19:55.18ID:wR6MYEok0979デフォルトの名無しさん (ワッチョイ 4549-1etN)
2020/08/29(土) 10:47:19.93ID:dZuEnb/K0 12000ページのPDF・・・
ほんとに聞きたい事なの?これ
ほんとに聞きたい事なの?これ
980デフォルトの名無しさん (ワッチョイ 0201-YRmH)
2020/08/29(土) 10:47:46.31ID:lHm5nrxO0 >>973
Split使うならJoinも使おうよ…
Sub test2()
Dim strArray() As String
Dim rtnStr As String
testStr = "000070-00100-01230"
strArray = Split(testStr, "-", , vbTextCompare)
For i = 0 To UBound(strArray)
strArray(i) = Cstr(Val(strArray(i)))
Next
rtnStr = Join(strArray, "-")
End Sub
Split使うならJoinも使おうよ…
Sub test2()
Dim strArray() As String
Dim rtnStr As String
testStr = "000070-00100-01230"
strArray = Split(testStr, "-", , vbTextCompare)
For i = 0 To UBound(strArray)
strArray(i) = Cstr(Val(strArray(i)))
Next
rtnStr = Join(strArray, "-")
End Sub
981980 (ワッチョイ 0201-YRmH)
2020/08/29(土) 10:48:58.87ID:lHm5nrxO0 ってすでに書かれてたわ… Orz
982デフォルトの名無しさん (ブーイモ MM4d-xiBb)
2020/08/29(土) 10:55:28.99ID:jdj2nRjtM983デフォルトの名無しさん (ワッチョイ 21d2-vZRt)
2020/08/29(土) 11:18:02.61ID:ebvcDddx0 ある言語だと
"00-001-02"split("-")map(asNumber)join("-")println
"00-001-02"split("-")map(asNumber)join("-")println
984デフォルトの名無しさん (アウアウウー Sa85-7m6G)
2020/08/29(土) 11:19:35.12ID:0Ji7S1+0a985976 (ワッチョイ 45cc-pyQU)
2020/08/29(土) 13:57:00.39ID:pUlaC/XX0 >>978
1シートにはまとめられません。
>>979
日々の取引をデータベースに入力していて、そのデータベースから出力されたデータを取引伝票としてPDF化したいのですが
データベースソフトに取引伝票の書式が設定されていないので、エクセルで作ろうと思います。
1ページごと出力してフリーソフトで結合すると、12時間くらいかかっていたので、エクセルのPDF結合だとAcrobatPro
が必要になるそうなので、この方法もできません。
>>984
シート上に帳票を作り、その帳票をページごとに書き換えています。試していませんが、1シートだと行数が足りないです。
それと、ページごとに罫線とかの書式を作るのはつらいです。
1シートにはまとめられません。
>>979
日々の取引をデータベースに入力していて、そのデータベースから出力されたデータを取引伝票としてPDF化したいのですが
データベースソフトに取引伝票の書式が設定されていないので、エクセルで作ろうと思います。
1ページごと出力してフリーソフトで結合すると、12時間くらいかかっていたので、エクセルのPDF結合だとAcrobatPro
が必要になるそうなので、この方法もできません。
>>984
シート上に帳票を作り、その帳票をページごとに書き換えています。試していませんが、1シートだと行数が足りないです。
それと、ページごとに罫線とかの書式を作るのはつらいです。
986デフォルトの名無しさん (ワッチョイ 4549-1etN)
2020/08/29(土) 14:17:55.39ID:dZuEnb/K0987デフォルトの名無しさん (ワッチョイ 11b3-u9FC)
2020/08/29(土) 14:32:50.04ID:D+h94FkM0 >>985
よくわからないけど、何とかデータをエクセルの表にして、ワードの差し込み印刷でやる、とかはどう?
よくわからないけど、何とかデータをエクセルの表にして、ワードの差し込み印刷でやる、とかはどう?
988デフォルトの名無しさん (アウアウエー Sa0a-Rexm)
2020/08/29(土) 14:38:51.56ID:fy0wFynXa PDF1ファイルにする理由はあるの?
120ファイルぐらいに分けるでしょ普通
120ファイルぐらいに分けるでしょ普通
989デフォルトの名無しさん (ワッチョイ 822f-8BP0)
2020/08/29(土) 14:42:09.88ID:1Tm3n33G0 伝票とかだと保存義務とかあったりして、出力しておいておかないとダメな時もある
1シートで収まらないならある程度で分割してやるしかないし
罫線とか決まったフォーマットならコピーするだけ
が、EXCELでやるのが間違ってるな
ちゃんとした帳票ツール買って対応する言語使えよ
1シートで収まらないならある程度で分割してやるしかないし
罫線とか決まったフォーマットならコピーするだけ
が、EXCELでやるのが間違ってるな
ちゃんとした帳票ツール買って対応する言語使えよ
990デフォルトの名無しさん (ワッチョイ 4d63-gth/)
2020/08/29(土) 16:14:59.78ID:EjHgD7140 PDF化って言われても実コマンド書かなきゃアドバイスのしようもないわな
991デフォルトの名無しさん (ワッチョイ 0d7c-JMbW)
2020/08/29(土) 19:10:04.48ID:91aO+zvA0 シートにまとめられない理由は?
まとめないとして、12000シート作れるスペックはあるのか?
まとめないとして、12000シート作れるスペックはあるのか?
992デフォルトの名無しさん (ワッチョイ 06c9-1etN)
2020/08/29(土) 22:40:12.57ID:LkUYL8wZ0 >>961
これ、マジで困るわ・・・
これ、マジで困るわ・・・
993デフォルトの名無しさん (ワッチョイ 6e63-mUq2)
2020/08/29(土) 23:53:21.40ID:wkbqrDC+0 サポート終了なんだからいつまでもIE使ってんじゃねえよ
994デフォルトの名無しさん (テテンテンテン MM66-nUCc)
2020/08/30(日) 00:09:48.26ID:HNjVBgM5M >>985
Accessでやって下さい
Accessでやって下さい
995デフォルトの名無しさん (ワッチョイ 6e63-8BP0)
2020/08/30(日) 07:04:48.97ID:ZpZWI99c0 IE制御で作る
てどういう意味です?
てどういう意味です?
996デフォルトの名無しさん (アウアウエー Sa0a-ifKp)
2020/08/30(日) 08:58:33.06ID:IZ41nY3ca テキストファイルを読み込もうとしているのですが、ファイルがないとエラーが出ます。なにが原因でしょうか?
Sub func()
Dim folderPath As String: folderPath = "G:\Test"
Dim textLine, fileName As String
Dim fileToOpen As Integer
Dim i As Integer
fileName = folderPath & "01.txt"
fileToOpen = FreeFile()
Open fileName For Input As fileToOpen
i = 1
While Not EOF(fileToOpen)
Line Input #fileToOpen, textLine
Cells(i, "A").Value = textLine
i = i + 1
Wend
End Sub
Sub func()
Dim folderPath As String: folderPath = "G:\Test"
Dim textLine, fileName As String
Dim fileToOpen As Integer
Dim i As Integer
fileName = folderPath & "01.txt"
fileToOpen = FreeFile()
Open fileName For Input As fileToOpen
i = 1
While Not EOF(fileToOpen)
Line Input #fileToOpen, textLine
Cells(i, "A").Value = textLine
i = i + 1
Wend
End Sub
997デフォルトの名無しさん (ワッチョイ 6101-cCp/)
2020/08/30(日) 09:03:16.96ID:YG+IT5u+0 Open "C:\Sample\Data.txt" For Input As #1
Line Input #1, buf
Close #1
Line Input #1, buf
Close #1
998デフォルトの名無しさん (ワッチョイ a2bc-n2Os)
2020/08/30(日) 09:03:41.78ID:yRrMkFD60 フォルダーパスの最後に/足してみては?
999デフォルトの名無しさん (ワッチョイ 6101-cCp/)
2020/08/30(日) 09:05:06.49ID:YG+IT5u+0 フォルダとファイルの間に/がないとか
1000デフォルトの名無しさん (アウアウエー Sa0a-ifKp)
2020/08/30(日) 09:13:38.94ID:IZ41nY3ca フォルダパスに"\"が入っていませんでした。
ありがとうございます!
ありがとうございます!
10011001
Over 1000Thread このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 65日 7時間 12分 10秒
新しいスレッドを立ててください。
life time: 65日 7時間 12分 10秒
レス数が1000を超えています。これ以上書き込みはできません。
ニュース
- 中国側が首相答弁の撤回要求、日本側拒否 [夜のけいちゃん★]
- 債券・円・株「トリプル安」に…長期金利1.755%まで上昇、円は対ユーロで史上最安値 [蚤の市★]
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★5 [ぐれ★]
- 映画「鬼滅の刃」の興行収入急減、日本行き航空券大量キャンセル…中国メディア報道 [蚤の市★]
- 【音楽】Perfume・あ~ちゃんの結婚相手「一般男性」は吉田カバンの社長・吉田幸裕氏(41) 高身長で山本耕史似 [Ailuropoda melanoleuca★]
- 「タワマン天国」に飛びつく若者…SNSに転がる「成功体験」に続けるのか 湾岸エリアの業者が語った現実 [蚤の市★]
- 【正論】玉木雄一郎「高市さんの答弁は米軍が攻撃を受けた場合を前提としており、撤回するのは難しい」特定野党を完全論破 [519511584]
- タイで中国人観光客が激減でもタイ人は大喜び、タイの人はネトウヨだった [605029151]
- フランス「G7に習近平主席を呼びたい」ドイツ「良い考えだ」 高市さん...? [237216734]
- 麻生太郎氏、高市政権と距離を置きはじめる(´・ω・`) [399259198]
- 自閉症が「んなっしょい」と連呼するお🏡
- 【悲報】中国営業に熱心な日本人タレントたち、中国のイベントが続々と中止に… まだ予定中のアイドルとか歌手とかたくさんいるけど [452836546]
