ExcelのVBAに関する質問スレです
コード書き込みや作成依頼もOK
※前スレ
Excel VBA 質問スレ Part56
http://mevius.5ch.net/test/read.cgi/tech/1534976724/
探検
Excel VBA 質問スレ Part57
■ このスレッドは過去ログ倉庫に格納されています
2018/09/10(月) 21:42:39.57ID:K1uuwFLt
2018/09/14(金) 08:38:51.08ID:cxzTGReq
>>20
コメント入れまくるんだ
コメント入れまくるんだ
2018/09/14(金) 08:53:13.81ID:itNItVhP
コメント入れる前に整理してくれ
汚いコードのコメントは汚くて結局わかりにくいままになるぞ
汚いコードのコメントは汚くて結局わかりにくいままになるぞ
2018/09/14(金) 10:47:56.50ID:OPHSLG3r
>>20
主な操作対象が配列なのだったらむしろ分かりやすいのでは?
主な操作対象が配列なのだったらむしろ分かりやすいのでは?
2018/09/14(金) 12:16:51.56ID:LywiNQOe
VBAをやっとこさいじれます、っていう感じの人には配列の理解は厳しいぞ
配列のサブスクリプト、コレクションのインデックス、ハッシュテーブルのキーの相互の違いが分からなかったりするからな
配列のサブスクリプト、コレクションのインデックス、ハッシュテーブルのキーの相互の違いが分からなかったりするからな
2018/09/14(金) 12:18:52.11ID:JMy0VfN7
配列の解説書をコメントに書いとく。
具体例を豊富に。
具体例を豊富に。
2018/09/14(金) 15:48:14.90ID:OPHSLG3r
配列が難しいだろうか...
俺にはわからん
俺にはわからん
2018/09/14(金) 17:49:25.94ID:Rix9Ja+2
まぁなんでもそうだろうと思うけど、判る人間には判らない人間がなぜ判らないのかが判らない w
2018/09/14(金) 18:47:04.71ID:5PCa/oFv
いや配列は分かるのかもしれん
ただプロシージャさえ使わず変数名にaとかbとか付けてたりで数百行書いてるようなマクロが散見されるほどうちのレベルは低いからちょっと不安
ただプロシージャさえ使わず変数名にaとかbとか付けてたりで数百行書いてるようなマクロが散見されるほどうちのレベルは低いからちょっと不安
2018/09/14(金) 18:53:37.98ID:8jcNJm47
変数が分かるんなら配列も分かりそうだけど、そんなに難しいかな?
「配列っていうものもあるんだなー」程度でも認識さえしていれば、
むしろ配列しか使ってないコードならそのうち理解してくれそうな気がする。
途中でコレクションとか辞書とかヘンなオブジェクトとか自作クラスとか使ってなければ。タブン。
「配列っていうものもあるんだなー」程度でも認識さえしていれば、
むしろ配列しか使ってないコードならそのうち理解してくれそうな気がする。
途中でコレクションとか辞書とかヘンなオブジェクトとか自作クラスとか使ってなければ。タブン。
2018/09/14(金) 19:06:28.55ID:8jcNJm47
よく考えたら、コードの読みやすさは「何を使うか」より「どう書くか」の方が重要な気がする。
ともあれ、職場に何人かVBAが書ける人がいるようだから(非常に素晴らしいことに)、
適当に何人かひっ捕まえて使わせてみて率直な感想を言ってもらうといいんじゃなかろうか。
ともあれ、職場に何人かVBAが書ける人がいるようだから(非常に素晴らしいことに)、
適当に何人かひっ捕まえて使わせてみて率直な感想を言ってもらうといいんじゃなかろうか。
2018/09/14(金) 20:17:01.33ID:/DsKfDfg
Worksheet.CellsとかRange.Offsetとか、引数に二次元配列をとるアクセサを使えない人は結構いる印象だよな
32デフォルトの名無しさん
2018/09/14(金) 23:44:55.63ID:za5qG/O1 配列の難しさがわからんのは配列すらわかっとらん証拠やぞプロさん達w
33デフォルトの名無しさん
2018/09/14(金) 23:53:34.83ID:KNVYDbzH2018/09/14(金) 23:54:08.70ID:yt+m1AZF
ワークシートの配列の方が難しいよね
35デフォルトの名無しさん
2018/09/14(金) 23:56:00.89ID:za5qG/O12018/09/14(金) 23:59:40.89ID:KNVYDbzH
なるほど配列は易しいデータ構造ってことで
37デフォルトの名無しさん
2018/09/15(土) 00:26:05.12ID:XNrqFkTO excel vbaでテトリスとか作れるようになると、excel vbaを使いこなせられるようになったと思っていい?
38デフォルトの名無しさん
2018/09/15(土) 00:37:49.64ID:0OTUBrr2 >>37
いくない、Excelはゲーム作成用ツールじゃない
いくない、Excelはゲーム作成用ツールじゃない
2018/09/15(土) 07:26:48.93ID:OUVvcRON
2018/09/15(土) 14:47:18.53ID:kCggA2zW
テトリス作れるレベルならそこらへんの私VBA得意ですドヤよりスキル的に遥かに上だから、
VBAらしく事務処理の自動化をやるくらい楽勝だよ
VBAらしく事務処理の自動化をやるくらい楽勝だよ
2018/09/15(土) 14:58:06.40ID:FpfMU/ZL
テトリス作る時間に他の勉強をするべき。
そこまで求められてないから無駄。
そこまで求められてないから無駄。
2018/09/15(土) 16:22:43.79ID:MP3gARzS
>>37
字面だけでいえば、「Excel VBAでテトリスが作れるレベル」なら、「Excel VBAはそれなりに使いこなせる」と言える。
ただ、それを訊いて何をしようとしているのか分からない。内容次第ではおすすめしない。
字面だけでいえば、「Excel VBAでテトリスが作れるレベル」なら、「Excel VBAはそれなりに使いこなせる」と言える。
ただ、それを訊いて何をしようとしているのか分からない。内容次第ではおすすめしない。
43デフォルトの名無しさん
2018/09/15(土) 16:34:10.47ID:oLja5sKR VBAでテトリス作る意味って何?
2018/09/15(土) 16:36:20.47ID:RH+0S0Ax
それなりというか世の中の自称VBAのプロのほとんど全員より上だろう
それ以上の人はVBAできますなんて恥ずかしくて言わない
それ以上の人はVBAできますなんて恥ずかしくて言わない
2018/09/15(土) 16:54:50.81ID:g80wVNRI
エクセルVBAでテトリス作るのは芸ではあるけど実用的じゃない
どうせならエクセルで機械学習とか実務に使う余地があるものやれば
どうせならエクセルで機械学習とか実務に使う余地があるものやれば
2018/09/15(土) 16:55:58.42ID:g80wVNRI
プログラマはVBAできます
なんてわざわざ言わない
他言語ができればできて当たり前だから
なんてわざわざ言わない
他言語ができればできて当たり前だから
47デフォルトの名無しさん
2018/09/15(土) 19:14:56.89ID:XNrqFkTO >>43
vbaを使いこなせられるというか、これが作れるようになれば、この先いろんなツールをつくろうが、
応用がきくという意味で、テトリスという題材を選んでみた。
俺、間違ってることいってる?
vba使いこなせられるになる基準として、何かこういうの作ってみろ的なことがあればいってほしい。
vbaを使いこなせられるというか、これが作れるようになれば、この先いろんなツールをつくろうが、
応用がきくという意味で、テトリスという題材を選んでみた。
俺、間違ってることいってる?
vba使いこなせられるになる基準として、何かこういうの作ってみろ的なことがあればいってほしい。
2018/09/15(土) 19:25:00.03ID:vKLFrcGU
散らばった支社にプログラムを配るにしても、
完璧にシステム仕様が決まっていて、テストも十分終えたもの以外は、一つのExcelファイルに
プログラム
設定データ
蓄積データ
をまとめるのはやめとけって忠告したのに・・・。
プログラムのバグ修正のたびに、支社の端末を直接操作しているVBAマスターを自称する後輩が・・・。
土日ももう呼び出し呼び出し。完全に病んでしまった。
あれほど忠告したのに・・・。
安易な作りでデータ等々を抱えると、プログラムの修正だけしたくても、簡単にはいかないから、
せめて蓄積データだけは別のエクセルファイルなりに保存して開いて使うなりの仕様にしとけと・・・。
完璧にシステム仕様が決まっていて、テストも十分終えたもの以外は、一つのExcelファイルに
プログラム
設定データ
蓄積データ
をまとめるのはやめとけって忠告したのに・・・。
プログラムのバグ修正のたびに、支社の端末を直接操作しているVBAマスターを自称する後輩が・・・。
土日ももう呼び出し呼び出し。完全に病んでしまった。
あれほど忠告したのに・・・。
安易な作りでデータ等々を抱えると、プログラムの修正だけしたくても、簡単にはいかないから、
せめて蓄積データだけは別のエクセルファイルなりに保存して開いて使うなりの仕様にしとけと・・・。
2018/09/15(土) 19:56:51.35ID:JWnql4hZ
>>47
勘違いしてるようだが、テトリスはプログラミングの練習ネタとしてはかなり難しい部類だ
テトリスを自分で設計して作れたら、VBAを使いこなせるどころか世の中でVBAのプロを自称する連中の中でいきなり上位に入るレベル
それくらいVBAのプロのレベルは低い
つまり何が言いたいかっていうと、テトリスはやりすぎ
家計簿くらい作れたら十分面接でドヤっていいよ
勘違いしてるようだが、テトリスはプログラミングの練習ネタとしてはかなり難しい部類だ
テトリスを自分で設計して作れたら、VBAを使いこなせるどころか世の中でVBAのプロを自称する連中の中でいきなり上位に入るレベル
それくらいVBAのプロのレベルは低い
つまり何が言いたいかっていうと、テトリスはやりすぎ
家計簿くらい作れたら十分面接でドヤっていいよ
2018/09/15(土) 20:11:22.09ID:qQRjJW7l
2018/09/15(土) 20:13:33.91ID:kEjGAf/G
多数ユーザー向けにマクロを配布するならもうアドインにした方がいいよな
で、データの方はプログラムとのやりとりに支障が出ないようテーブル名、スキーマ、データフォーマットを固定したソースファイルに別途保存させる方がいい
で、データの方はプログラムとのやりとりに支障が出ないようテーブル名、スキーマ、データフォーマットを固定したソースファイルに別途保存させる方がいい
2018/09/15(土) 20:52:56.93ID:CRrc/VBu
アドインやCOMアドインのベンダーにインターンで行ったが、VBAどころか、C++でガリガリ開発するスーパープログラマが何人もいて、速攻で就職先から外したわ
2018/09/15(土) 21:12:36.41ID:kEjGAf/G
C++でガリガリ開発ってそんなに凄い?
54デフォルトの名無しさん
2018/09/15(土) 21:16:07.93ID:KIanXBkQ C++でガリガリ開発しててもなんとも思わない
VBやウンコスクリプトでガリガリ開発してるのは
サルがオナニーしてるようにみえる
もしくは奴隷が単調な動作を繰り返してるようにみえる
VBやウンコスクリプトでガリガリ開発してるのは
サルがオナニーしてるようにみえる
もしくは奴隷が単調な動作を繰り返してるようにみえる
2018/09/15(土) 21:19:37.63ID:CRrc/VBu
>>52
取っつきにくさでいうと、すでに子供の頃から馴染んでおかなければならないイメージ
俺みたいに遅蒔きで大学に入ってC++を初めてさわったレベルでは追い付けないな、と思った
きっかけは分析ツールみたいなアドインってどう作るのか知りたかったという位、その程度の熱意じゃ無理
取っつきにくさでいうと、すでに子供の頃から馴染んでおかなければならないイメージ
俺みたいに遅蒔きで大学に入ってC++を初めてさわったレベルでは追い付けないな、と思った
きっかけは分析ツールみたいなアドインってどう作るのか知りたかったという位、その程度の熱意じゃ無理
2018/09/15(土) 21:20:38.13ID:CRrc/VBu
間違った
>>53
>>53
2018/09/15(土) 21:52:32.87ID:wUMJLM3O
VBAのほうが文法、ライブラリ、コミュニティレベルがお粗末だから難しいかな
モダンC++は昔とくらべてびっくりするぐらい生産性高いからね
モダンC++は昔とくらべてびっくりするぐらい生産性高いからね
2018/09/15(土) 21:57:22.88ID:wUMJLM3O
59デフォルトの名無しさん
2018/09/15(土) 21:59:21.10ID:XNrqFkTO セル内に
"aiueo"
とか
≪aiueo≫
が格納されていたとして、
囲い文字だけを抽出するにはどうすればいいですか?
"aiueo"の場合は、全部半角なので、配列に代入して、配列の先頭と末尾を参照すればいいのだが、
≪aiueo≫の場合、全角・半角の区別がつかないので(どちらでもない?)、どうやればいいのか。
"aiueo"
とか
≪aiueo≫
が格納されていたとして、
囲い文字だけを抽出するにはどうすればいいですか?
"aiueo"の場合は、全部半角なので、配列に代入して、配列の先頭と末尾を参照すればいいのだが、
≪aiueo≫の場合、全角・半角の区別がつかないので(どちらでもない?)、どうやればいいのか。
2018/09/15(土) 22:10:32.77ID:JUwQwotH
61デフォルトの名無しさん
2018/09/15(土) 22:18:05.27ID:KIanXBkQ A B
1 "aiueo" =(LEFT(A1,1))&(RIGHT(A1, 1)) ⇒ ""
2 ≪aiueo≫ =(LEFT(A2,1))&(RIGHT(A2, 1)) ⇒ ≪≫
オレならVBAなんか使わずにこうする
1 "aiueo" =(LEFT(A1,1))&(RIGHT(A1, 1)) ⇒ ""
2 ≪aiueo≫ =(LEFT(A2,1))&(RIGHT(A2, 1)) ⇒ ≪≫
オレならVBAなんか使わずにこうする
62デフォルトの名無しさん
2018/09/15(土) 22:28:08.97ID:XNrqFkTO2018/09/15(土) 22:34:12.08ID:kEjGAf/G
>>59
正規表現使えば何とかなるよ
基本的には、aiueoが見つかった場合に見つかった文字列の開始位置と終端位置からそれぞれ一文字分外側にオフセットさせた文字列を取ればいい
"aiueo"のようにaiueoの中に2バイト文字が混在してる場合も抽出しなきゃならないような特殊な場合は文字列の範囲指定がちょっと面倒かもしれないが
正規表現使えば何とかなるよ
基本的には、aiueoが見つかった場合に見つかった文字列の開始位置と終端位置からそれぞれ一文字分外側にオフセットさせた文字列を取ればいい
"aiueo"のようにaiueoの中に2バイト文字が混在してる場合も抽出しなきゃならないような特殊な場合は文字列の範囲指定がちょっと面倒かもしれないが
64デフォルトの名無しさん
2018/09/15(土) 22:37:58.41ID:XNrqFkTO2018/09/15(土) 22:41:36.90ID:kEjGAf/G
>>62
囲い文字が特定できるならそれが正解
囲い文字が特定できるならそれが正解
2018/09/15(土) 22:46:04.69ID:JpPL0LlT
>>62
囲い文字以外を置き換えで消しちゃえばいいんじゃね
検索文字列は"[^\(\)\[\]\"\'「」『』《》]"みたいな感じで
最初の一文字と最後の一文字取るだけならもっとスマートに出来るけど囲い文字が無い場合は括弧以外を抽出しちゃうし
囲い文字以外を置き換えで消しちゃえばいいんじゃね
検索文字列は"[^\(\)\[\]\"\'「」『』《》]"みたいな感じで
最初の一文字と最後の一文字取るだけならもっとスマートに出来るけど囲い文字が無い場合は括弧以外を抽出しちゃうし
2018/09/15(土) 22:51:05.07ID:h6vRwHat
LENBなどB付き関数を使わない限り、半角全角は考える必要ないだろ?Excelは内部では全部Unicodeで扱ってる
2018/09/15(土) 23:14:10.61ID:VdLZkjGs
テトリスなんか複雑すぎて、VBA の奴に作れるわけないだろw
回転もあるし、壁にめり込んだり、
そもそも1秒に10回でも、描画できるか?
そんな性能あるか?
回転もあるし、壁にめり込んだり、
そもそも1秒に10回でも、描画できるか?
そんな性能あるか?
69デフォルトの名無しさん
2018/09/15(土) 23:15:54.34ID:8rxpHkWL 一秒に1回しか動かんのになんで10回も描画せなあかんねんw
2018/09/15(土) 23:18:58.10ID:h6vRwHat
回転は最低3回/秒位必要だろうし、落ち速度が速くならないテトリスじゃかたておちだろ
71デフォルトの名無しさん
2018/09/15(土) 23:35:07.83ID:XNrqFkTO >>62
>@事前に囲い文字を把握しておく
で、囲い文字があるかないか、事前に分類しておく
分類後、囲い文字があるものに対して、
vbaを使わずにleft、rightを使って抽出。
これで囲い文字の種類を全部押さえていることになる。
後は、コード内で正規表現(grep)使ってうまくやればなんとかなりそう。
>@事前に囲い文字を把握しておく
で、囲い文字があるかないか、事前に分類しておく
分類後、囲い文字があるものに対して、
vbaを使わずにleft、rightを使って抽出。
これで囲い文字の種類を全部押さえていることになる。
後は、コード内で正規表現(grep)使ってうまくやればなんとかなりそう。
72デフォルトの名無しさん
2018/09/16(日) 00:44:02.64ID:sPpLNVSR ちょっとよくわからんのだけど
"aiueo≫
とか
≪"aiueo"
とか
≪"aiueo≫ "
はエラーとして除外するの?
"aiueo≫
とか
≪"aiueo"
とか
≪"aiueo≫ "
はエラーとして除外するの?
73デフォルトの名無しさん
2018/09/16(日) 01:22:34.32ID:k7pdoQET >>72
エラーとして除外する。
エラーとして除外する。
2018/09/16(日) 02:44:47.45ID:BKY25fNA
2018/09/16(日) 02:48:34.41ID:BKY25fNA
2018/09/16(日) 02:51:31.52ID:BKY25fNA
2018/09/16(日) 07:54:39.60ID:GNhjMZyx
ゲーム作れるから事務処理作れるっていう発想が実務浅いんだろうな
2018/09/16(日) 09:28:10.74ID:e7XchwPX
VBAを使いこなしたいとは思っているようだけど、「事務処理に使う」とは言ってないのでは。
俺はそのままやってみたらいいと思ってる。Excel VBAでアニメーション作った動画とかもポロポロあるわけだし。
(https://twitter.com/excelprog/status/993022444221808640とか)
目標が分からないし、何をやりたいにせよ好奇心を止めることはできないし。
https://twitter.com/5chan_nel (5ch newer account)
俺はそのままやってみたらいいと思ってる。Excel VBAでアニメーション作った動画とかもポロポロあるわけだし。
(https://twitter.com/excelprog/status/993022444221808640とか)
目標が分からないし、何をやりたいにせよ好奇心を止めることはできないし。
https://twitter.com/5chan_nel (5ch newer account)
2018/09/16(日) 10:51:52.18ID:SnNXv25N
実用性で言ったら他の言語を使えばいいじゃんってなるから
こうやってVBAを使うことそのものを目的にして遊ぶのは悪くないと思う
こうやってVBAを使うことそのものを目的にして遊ぶのは悪くないと思う
2018/09/16(日) 11:32:42.62ID:gTaOdbFs
2018/09/16(日) 12:11:54.55ID:570fQ2zr
>>68
既に存在するけど、テトリス
既に存在するけど、テトリス
2018/09/16(日) 12:38:30.87ID:eHdm07t1
JavaのAPI仕様みたいな、VBAのプロパティやメソッドが一覧になってるサイトや書籍てありますか?
他人のソース読むとき、公式のやつが英語のみで辛いんです……
他人のソース読むとき、公式のやつが英語のみで辛いんです……
2018/09/16(日) 14:28:02.06ID:gTaOdbFs
>>47
ゲームを題材にするならRPGが最適じゃないかな
RPGならデータをこねくり回すしExcelVBAの勉強には良さそうだが
キャラや地図のデータをワークシートに保存して
VBAでそれにアクセスしながらゲームを進行させる感じで
ゲームを題材にするならRPGが最適じゃないかな
RPGならデータをこねくり回すしExcelVBAの勉強には良さそうだが
キャラや地図のデータをワークシートに保存して
VBAでそれにアクセスしながらゲームを進行させる感じで
2018/09/16(日) 18:44:46.22ID:krLSHvzW
VBAマリオだってあるんだし
作ろうと思えば、ある程度までは可能だろう
作ろうと思えば、ある程度までは可能だろう
2018/09/16(日) 20:14:07.75ID:BKY25fNA
そもそもVBAはアクションゲームに向かないんだよ
もう技術がある人がそれを承知で芸をやるのは良いけど
実用にしたいならビジネス用の題材を取った方が良い
もう技術がある人がそれを承知で芸をやるのは良いけど
実用にしたいならビジネス用の題材を取った方が良い
2018/09/16(日) 20:17:15.86ID:BKY25fNA
>>83
RRGはテトリスよりは題材としてマシだと思う
ドラクエみたいな普通のGUIのRPGを
エクセル方眼紙で再現するとかだと筋悪いけど
そうじゃなくてCUIのRPGで
アイテムとかデータ構造の構築と管理を中心に組めば
ビジネスにも応用が利くと思う
RRGはテトリスよりは題材としてマシだと思う
ドラクエみたいな普通のGUIのRPGを
エクセル方眼紙で再現するとかだと筋悪いけど
そうじゃなくてCUIのRPGで
アイテムとかデータ構造の構築と管理を中心に組めば
ビジネスにも応用が利くと思う
87デフォルトの名無しさん
2018/09/16(日) 21:26:15.56ID:k7pdoQET csvファイルがあって、これをexcelに読みおませると
表が崩れてしまう。
csvの中身
--
1,my name is taro
2,hello,world
--
excelに読み込ませると以下のように表が崩れてしまう。
A B C
1 1 my name is taro
2 2 hello world
期待値は、hello,worldをコンマ(,)で区切らず、B1セル内に格納したい。
まずvbaを使わずになんとかできない?
表が崩れてしまう。
csvの中身
--
1,my name is taro
2,hello,world
--
excelに読み込ませると以下のように表が崩れてしまう。
A B C
1 1 my name is taro
2 2 hello world
期待値は、hello,worldをコンマ(,)で区切らず、B1セル内に格納したい。
まずvbaを使わずになんとかできない?
88デフォルトの名無しさん
2018/09/16(日) 21:29:05.54ID:k7pdoQET >>83
確かにRPGのほうがワークシートの保存とかデータ構造の管理とか色々関わってくるのでテトリスよりは題材としてマシなレベルですね
確かにRPGのほうがワークシートの保存とかデータ構造の管理とか色々関わってくるのでテトリスよりは題材としてマシなレベルですね
89デフォルトの名無しさん
2018/09/16(日) 21:31:24.63ID:k7pdoQET 87ですが、vbaで加工しないといけない場合、どういった整形処理が考えられますか?
90デフォルトの名無しさん
2018/09/16(日) 21:31:41.83ID:sPpLNVSR >>87
CSVの意味わかってる?
CSVの意味わかってる?
2018/09/16(日) 21:33:00.45ID:e7XchwPX
92デフォルトの名無しさん
2018/09/16(日) 21:36:22.33ID:k7pdoQET93デフォルトの名無しさん
2018/09/16(日) 21:40:43.38ID:SOVIz+sV 逆だ
CSVはこうしたほうがいいというメモを
無視してるのはキミラ低学歴知恵遅れなワケ
カンマか改行かダブルクォーテーションが項目に含まれる場合
ダブルクォーテーションでくくるべきだ
さらにダブルクォーテーションが含まれる場合、
2個のダブルクォーテーションでエスケープするべきだ
https://tools.ietf.org/html/rfc4180
6. Fields containing line breaks (CRLF), double quotes, and commas
should be enclosed in double-quotes. For example:
"aaa","b CRLF
bb","ccc" CRLF
zzz,yyy,xxx
わかった?
CSVはこうしたほうがいいというメモを
無視してるのはキミラ低学歴知恵遅れなワケ
カンマか改行かダブルクォーテーションが項目に含まれる場合
ダブルクォーテーションでくくるべきだ
さらにダブルクォーテーションが含まれる場合、
2個のダブルクォーテーションでエスケープするべきだ
https://tools.ietf.org/html/rfc4180
6. Fields containing line breaks (CRLF), double quotes, and commas
should be enclosed in double-quotes. For example:
"aaa","b CRLF
bb","ccc" CRLF
zzz,yyy,xxx
わかった?
2018/09/16(日) 21:45:22.98ID:e7XchwPX
>>92
1,my name is taro
2,hello,world
↓
1,"my name is taro"
2,"hello,world"
※my name is taroは括られている必要はないが、統一した方が良い
1,my name is taro
2,hello,world
↓
1,"my name is taro"
2,"hello,world"
※my name is taroは括られている必要はないが、統一した方が良い
95デフォルトの名無しさん
2018/09/16(日) 21:45:42.24ID:sPpLNVSR96デフォルトの名無しさん
2018/09/16(日) 21:45:49.49ID:k7pdoQET >>93
つまり、CSVデータの仕様が悪いので、これ作った人になんとかしろというしかないか。
つまり、CSVデータの仕様が悪いので、これ作った人になんとかしろというしかないか。
2018/09/16(日) 21:48:00.44ID:e7XchwPX
>>96
カラム数が一定かつ「hello,world」なカラムが一つしかないなら、泥臭いやり方で直すことはできなくもない。
カラム数が一定かつ「hello,world」なカラムが一つしかないなら、泥臭いやり方で直すことはできなくもない。
2018/09/16(日) 21:52:12.15ID:T59P/aqG
99デフォルトの名無しさん
2018/09/16(日) 21:53:10.26ID:SHD7Rtu/ VBAでダメならPowerShellの出番だな
100デフォルトの名無しさん
2018/09/16(日) 21:54:27.21ID:SOVIz+sV 仕様はまったく悪くない
適切に読み込める
普通に矛盾なく読み込めるようになってる
ちゃんと読み込めないのは頭悪いから
自分が頭悪いのを棚にあげるのはよくない
A B C D E
AHO " hoge,huga boo CRLF foo CRLF woo BAKA
baka
↓
AHO,"""","hoge,huga","boo CRLF foo CRLF woo",BAKA crlf
baka
この形式で出力されてないデータはそもそもcsvじゃない
適切に読み込める
普通に矛盾なく読み込めるようになってる
ちゃんと読み込めないのは頭悪いから
自分が頭悪いのを棚にあげるのはよくない
A B C D E
AHO " hoge,huga boo CRLF foo CRLF woo BAKA
baka
↓
AHO,"""","hoge,huga","boo CRLF foo CRLF woo",BAKA crlf
baka
この形式で出力されてないデータはそもそもcsvじゃない
101デフォルトの名無しさん
2018/09/16(日) 21:55:20.90ID:k7pdoQET102デフォルトの名無しさん
2018/09/16(日) 22:08:17.61ID:e7XchwPX103デフォルトの名無しさん
2018/09/16(日) 22:16:05.95ID:e7XchwPX ああ、通常に考えるとまともに使えるCSVファイルではないので、
たぶん、CSVファイルを作成した後のことは何も考えないで作ったか、
あるいは特定のプログラム内でしか使わないことを想定したデータ(つまりCSVじゃない)かのどちらかだろうと思う。
もし前者なら、その仕様でCSVファイルを作成した(ツールを作成した)人には言っといた方がいい。
たぶん、CSVファイルを作成した後のことは何も考えないで作ったか、
あるいは特定のプログラム内でしか使わないことを想定したデータ(つまりCSVじゃない)かのどちらかだろうと思う。
もし前者なら、その仕様でCSVファイルを作成した(ツールを作成した)人には言っといた方がいい。
104デフォルトの名無しさん
2018/09/16(日) 22:24:51.91ID:SHD7Rtu/ >>101
読み込む前に整形すれば良い
PowerShellならワンライナー
cat test.csv | % {
$i = $_.IndexOf(",")
($_.Substring(0, $i), "`"$($_.Substring($i + 1, $_.Length - $i - 1))`"") -join ","
} | Out-File "dest.csv"
読み込む前に整形すれば良い
PowerShellならワンライナー
cat test.csv | % {
$i = $_.IndexOf(",")
($_.Substring(0, $i), "`"$($_.Substring($i + 1, $_.Length - $i - 1))`"") -join ","
} | Out-File "dest.csv"
105デフォルトの名無しさん
2018/09/16(日) 22:33:25.75ID:IXQKD+r/ カンマが嫌ならタブ区切りにする
どちらにしろ元データは要修正だよ
どちらにしろ元データは要修正だよ
106デフォルトの名無しさん
2018/09/16(日) 22:42:58.47ID:gTaOdbFs >>86
そうそうCUIベースのRPG
ワークシートごとにキャラデータやアイテムデータ、地図データなどを設定して
CUIで画面構成して進行する感じ
クエリワークシートなども用意して簡易データベース的に
データを利用してゲーム進行してやれば結構いい勉強になると思う
そうそうCUIベースのRPG
ワークシートごとにキャラデータやアイテムデータ、地図データなどを設定して
CUIで画面構成して進行する感じ
クエリワークシートなども用意して簡易データベース的に
データを利用してゲーム進行してやれば結構いい勉強になると思う
107デフォルトの名無しさん
2018/09/16(日) 22:44:29.60ID:bux1ZB5P tsv形式のcsvファイルに作り直した方が良いと思うわ
108デフォルトの名無しさん
2018/09/16(日) 22:45:20.56ID:mzkrOy05109デフォルトの名無しさん
2018/09/16(日) 22:48:48.42ID:+ao0anr7 >>104
そんなややこしい事しなくても
cat test.csv | %{ $i = $_ -split ',',2; "$($i[0]),""$($i[1])""" } > dest.txt
でいいでしょ
そんなややこしい事しなくても
cat test.csv | %{ $i = $_ -split ',',2; "$($i[0]),""$($i[1])""" } > dest.txt
でいいでしょ
110デフォルトの名無しさん
2018/09/16(日) 22:48:54.01ID:SHD7Rtu/111デフォルトの名無しさん
2018/09/16(日) 23:09:32.96ID:16Y59QgZ powershellが便利でVBAの出るまくなしってのはよくわかったけど
ここはVBAスレだからせっかくなのでVBAで解答を書いてみてよ
だいたい5行ぐらいでできるかな?
ここはVBAスレだからせっかくなのでVBAで解答を書いてみてよ
だいたい5行ぐらいでできるかな?
112デフォルトの名無しさん
2018/09/16(日) 23:10:09.34ID:k7pdoQET Inputがtxtなので、中身をみてコンマ(,)で区切られているので、CSVと勘違いしてしまったかもしれない
作った人に、CSVか確認してみます。
作った人に、CSVか確認してみます。
113デフォルトの名無しさん
2018/09/16(日) 23:27:45.95ID:EK9e0hMh CSV はカンマ区切りだから、列にカンマが入る可能性を考えて、各列を、" で囲む。
列内で、カンマを使いたい場合は、\ でカンマをエスケープする。\"
列内の文字列、a\"b
列、"a\"b"
それか、TSV。タブ区切りを使う。
ただし、これも列内にタブを使わないようにすべき
基本、システムを知らない人には、設計(SE)はできない!
こんなの誰でも知っている常識だからw
列内で、カンマを使いたい場合は、\ でカンマをエスケープする。\"
列内の文字列、a\"b
列、"a\"b"
それか、TSV。タブ区切りを使う。
ただし、これも列内にタブを使わないようにすべき
基本、システムを知らない人には、設計(SE)はできない!
こんなの誰でも知っている常識だからw
114デフォルトの名無しさん
2018/09/17(月) 00:05:45.07ID:dj7qSZnZ また低学歴知恵遅れがテキトーなこと書きこんでるわ。。。
115デフォルトの名無しさん
2018/09/17(月) 00:11:35.39ID:dj7qSZnZ 一般化すればこうなる
列のデリミタや行のデリミタ、もしくは引用符を含む場合
引用符で括る
引用符が含まれる場合、引用符は引用符の前に引用符を1つ記述する
csvの場合、
列のデリミタはカンマ
行のデリミタはCRLF
引用符はダブルクォート
になる
タブ区切りの場合、列のデリミタはHTになる
わかった?
列のデリミタや行のデリミタ、もしくは引用符を含む場合
引用符で括る
引用符が含まれる場合、引用符は引用符の前に引用符を1つ記述する
csvの場合、
列のデリミタはカンマ
行のデリミタはCRLF
引用符はダブルクォート
になる
タブ区切りの場合、列のデリミタはHTになる
わかった?
116デフォルトの名無しさん
2018/09/17(月) 00:22:08.36ID:27GPeyCI >>111
Dim fs, src, dest, line, i
Set fs = CreateObject("Scripting.FileSystemObject")
Set src = fs.OpenTextFile("test.csv", 1)
Set dest = fs.OpenTextFile("dest.csv", 2, True)
Do Until src.AtEndOfLine
line = src.ReadLine()
i = InStr(line, ",")
Call dest.WriteLine(Join(Array( _
Mid(line, 1, i - 1), _
"""" & Mid(line, i + 1, Len(line) - i) & """"), ","))
Loop
Call dest.Close()
Call src.Close()
Dim fs, src, dest, line, i
Set fs = CreateObject("Scripting.FileSystemObject")
Set src = fs.OpenTextFile("test.csv", 1)
Set dest = fs.OpenTextFile("dest.csv", 2, True)
Do Until src.AtEndOfLine
line = src.ReadLine()
i = InStr(line, ",")
Call dest.WriteLine(Join(Array( _
Mid(line, 1, i - 1), _
"""" & Mid(line, i + 1, Len(line) - i) & """"), ","))
Loop
Call dest.Close()
Call src.Close()
117デフォルトの名無しさん
2018/09/17(月) 00:26:30.19ID:27GPeyCI118デフォルトの名無しさん
2018/09/17(月) 00:36:24.95ID:dj7qSZnZ そんな低学歴知恵遅れマイルールは
低学歴知恵遅れのマイルールが通用するシステムでないと通用しない
低学歴知恵遅れのやりかたの別のファイル形式になる
低学歴知恵遅れのやりかたとcsvの形式は一切関係ないからな
なんで低学歴知恵遅れは
低学歴知恵遅れのマイルールを押しとうそうとすうんの?
低学歴知恵遅れの世界でしか通用しないのに
低学歴知恵遅れのマイルールが通用するシステムでないと通用しない
低学歴知恵遅れのやりかたの別のファイル形式になる
低学歴知恵遅れのやりかたとcsvの形式は一切関係ないからな
なんで低学歴知恵遅れは
低学歴知恵遅れのマイルールを押しとうそうとすうんの?
低学歴知恵遅れの世界でしか通用しないのに
119デフォルトの名無しさん
2018/09/17(月) 00:38:15.86ID:dj7qSZnZ この内容のExcelをcsvに出力する
A B C
aho boo"foo baka
aho boo"foo baka
普通に
aho.csv
aho,"boo""foo",baka
aho,"boo""foo",baka
と出力される
A B C
aho boo"foo baka
aho boo"foo baka
普通に
aho.csv
aho,"boo""foo",baka
aho,"boo""foo",baka
と出力される
120デフォルトの名無しさん
2018/09/17(月) 00:42:08.45ID:dj7qSZnZ こんな内容のaho1.csvをExcelにインポートする
aho,"boo\"foo",baka
aho,boo\"foo,baka
結果はこうなる
A B C
aho boo\foo" baka
aho boo\"foo=@baka
こんな内容のaho2.csvをExcelにインポートする
aho2.csv
aho,"boo""foo",baka
aho,"boo""foo",baka
結果はこうなる
A B C
aho boo"foo baka
aho boo"foo baka
当然
はっきりいってな
低学歴知恵遅れのマイルールなんかどうでもいいわけ
低学歴知恵遅れが出力するファイルはそもそもcsvじゃない
aho,"boo\"foo",baka
aho,boo\"foo,baka
結果はこうなる
A B C
aho boo\foo" baka
aho boo\"foo=@baka
こんな内容のaho2.csvをExcelにインポートする
aho2.csv
aho,"boo""foo",baka
aho,"boo""foo",baka
結果はこうなる
A B C
aho boo"foo baka
aho boo"foo baka
当然
はっきりいってな
低学歴知恵遅れのマイルールなんかどうでもいいわけ
低学歴知恵遅れが出力するファイルはそもそもcsvじゃない
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 高市首相、トランプ米大統領に「早期に会いたい」 日中関係悪化受け… ★2 [BFU★]
- 【コメ】卸売業者「簡単に安売りできない」「大暴落起きれば大赤字に」 JA「新米の販売進度が近年になく遅い。コメの回転が悪い」 ★4 [Hitzeschleier★]
- 高市早苗首相が天理教系企業に“巨額発注” 総額5000万円 本人は「政治団体の活動に必要な支出」と回答 [Hitzeschleier★]
- ホリエモン、「持ち家=幸せという価値観は過去のもの」と断言「快適な住まいが欲しいなら、賃貸住宅を次々に替えていく」 [muffin★]
- かつや、明日からカツ丼(竹)790円→590円、ロースカツ定食830円→630円、カツカレー(竹)990円→790円 画像あり [お断り★]
- 【配信】TikTokで収益化を剥奪される日本人クリエイターが続出 [muffin★]
- 【実況】博衣こよりのえちえちスーパーダンガンロンパ2🧪
- 千晴より先にレスナンバー4を俺が取るだけのスレ
- 自民党のヒゲ「日本側の無線でcopyとは言ったが了解という意味ではない」 [834922174]
- Chatgptのサムアルトマン、買い占めたメモリを使わず焼却処分「GoogleやClaudeが値上げで買えないようにする」 [347751896]
- 【新番組】轟はじめ🐧⚡のぶんぶんぶーん🚗💨!【🏡】
- ケンモメンってなんでこんなに反日が多いの? [866936191]
