!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
↑2行に減ってるけど、同じ内容を3行に増やして貼り付けること
ExcelのVBAに関する質問スレ
コード書き込みや作成依頼もOK
次スレは>>980が立てること
無理なら細かく安価指定
※前スレ
Excel VBA 質問スレ Part75
https://mevius.5ch.net/test/read.cgi/tech/1644384272/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
探検
Excel VBA 質問スレ Part76
レス数が1000を超えています。これ以上書き込みはできません。
1デフォルトの名無しさん (ブーイモ MMff-XZ6m)
2022/05/01(日) 02:23:41.78ID:2t63WK/jM908デフォルトの名無しさん (ワッチョイ 035f-auNL)
2022/07/04(月) 17:17:05.04ID:CvyJwule0 >>907
> 2.マクロだけ入れたxlsmを配布
> 加工したいxlsxファイルと同時に開いてもらってマクロを実行してもらう。
> 手間が増える。
これでいい。手間って配布の手間のこと?
共有サーバーのどっか特定の場所に読み取り専用にしたxlsmファイル置いといて
ここのマクロファイル使って作業してくれって告知だけすればいい
不具合が見つかって修正した場合も同名ファイルで上書きするだけだから楽だと思うよ
> 2.マクロだけ入れたxlsmを配布
> 加工したいxlsxファイルと同時に開いてもらってマクロを実行してもらう。
> 手間が増える。
これでいい。手間って配布の手間のこと?
共有サーバーのどっか特定の場所に読み取り専用にしたxlsmファイル置いといて
ここのマクロファイル使って作業してくれって告知だけすればいい
不具合が見つかって修正した場合も同名ファイルで上書きするだけだから楽だと思うよ
909デフォルトの名無しさん (エアペラ SD07-Omw7)
2022/07/04(月) 17:57:33.89ID:oo1ug/2UD 俺は上書き保存が怖いので.xltmを渡してる
910デフォルトの名無しさん (アウアウウー Sacf-BQ8I)
2022/07/04(月) 18:50:46.28ID:tF6z07pca >>909
リードオンリーで開くにしとけばいいだけじゃね?
リードオンリーで開くにしとけばいいだけじゃね?
911デフォルトの名無しさん (スプッッ Sd4a-BAMd)
2022/07/04(月) 19:05:52.33ID:g5E8ZW1ad >>908
Excelファイル2つ開いてマクロ実行して閉じるっていうのが操作的に手間かなと思ったけど、共有フォルダに置いといてそれを開いて使ってもらうのは無難に使いやすそう。ありがとう。
後出しで申し訳ないんだけど、うちの会社のPCがウイルス対策だとかで毎日起動時にマクロ有効化設定を強制オフ(有効化メッセージ出ずにオフになるやつ)にされるせいで、トラストセンターから毎日有効化設定してね、っていう雑な仕組みになってるんだ。
自身は設定オンにするVBSなりbatで対応してるけど、他の人だとExcel開いてトラストセンターで設定変更の事前動作も必要に。
アドインやVBSなら有効化しなくても動作するんだけど、そうなるとドラッグドロップで動作するVBSだと使う側の手間は省けるだろうか。
Excelファイル2つ開いてマクロ実行して閉じるっていうのが操作的に手間かなと思ったけど、共有フォルダに置いといてそれを開いて使ってもらうのは無難に使いやすそう。ありがとう。
後出しで申し訳ないんだけど、うちの会社のPCがウイルス対策だとかで毎日起動時にマクロ有効化設定を強制オフ(有効化メッセージ出ずにオフになるやつ)にされるせいで、トラストセンターから毎日有効化設定してね、っていう雑な仕組みになってるんだ。
自身は設定オンにするVBSなりbatで対応してるけど、他の人だとExcel開いてトラストセンターで設定変更の事前動作も必要に。
アドインやVBSなら有効化しなくても動作するんだけど、そうなるとドラッグドロップで動作するVBSだと使う側の手間は省けるだろうか。
912デフォルトの名無しさん (スフッ Sdaa-A+Eo)
2022/07/04(月) 19:58:33.04ID:Ujf5qvvVd 1. xlsmを共有フォルダに保存
2. 読み取り専用で開く
3. xlsm上の別シートに出力結果をVBAで作成
4. 出力結果シートを新規ブックにVBAで移動 (ws.move)
5. 新規ブックをダイアログボックスで保存させる
毎回これでやってる
2. 読み取り専用で開く
3. xlsm上の別シートに出力結果をVBAで作成
4. 出力結果シートを新規ブックにVBAで移動 (ws.move)
5. 新規ブックをダイアログボックスで保存させる
毎回これでやってる
913デフォルトの名無しさん (ワッチョイ 035f-auNL)
2022/07/04(月) 22:40:20.14ID:CvyJwule0 >>911
この環境下でも
(セキュリティを無効化して対象のxlsmを開く)VBSなりbatファイルの実体を共有に置いて
そのショートカットだけを配布がベストだと思う
> ドラッグドロップで動作するVBSだと使う側の手間は省けるだろうか
組織内のユーザーのリテラシーにもよるけど、
xlsmでもWorkbook_Openで即ファイルピックアップダイアログ開かせれば大差ないし、
なにより保守がしんどいでしょ
もし複雑な加工内容への変更依頼がきたら?
あるいは今後別のマクロの作成依頼が来て、それもすべてVBSで配布しろと言われるかもしれない
VBEもIDEとしてはアレだけど、
ブレークポイント置けないDebug系メソッドないモジュール分割気軽にできないVBSで開発し続けるの何倍も大変だと思うよ
この環境下でも
(セキュリティを無効化して対象のxlsmを開く)VBSなりbatファイルの実体を共有に置いて
そのショートカットだけを配布がベストだと思う
> ドラッグドロップで動作するVBSだと使う側の手間は省けるだろうか
組織内のユーザーのリテラシーにもよるけど、
xlsmでもWorkbook_Openで即ファイルピックアップダイアログ開かせれば大差ないし、
なにより保守がしんどいでしょ
もし複雑な加工内容への変更依頼がきたら?
あるいは今後別のマクロの作成依頼が来て、それもすべてVBSで配布しろと言われるかもしれない
VBEもIDEとしてはアレだけど、
ブレークポイント置けないDebug系メソッドないモジュール分割気軽にできないVBSで開発し続けるの何倍も大変だと思うよ
914デフォルトの名無しさん (アウアウウー Sacf-BQ8I)
2022/07/05(火) 01:05:42.67ID:jbzqjuV/a >>912
> 3. xlsm上の別シートに出力結果をVBAで作成
> 4. 出力結果シートを新規ブックにVBAで移動 (ws.move)
新規ブック作ってそこのシートに直接結果を出力した方が楽じゃね?
> 3. xlsm上の別シートに出力結果をVBAで作成
> 4. 出力結果シートを新規ブックにVBAで移動 (ws.move)
新規ブック作ってそこのシートに直接結果を出力した方が楽じゃね?
915デフォルトの名無しさん (ワッチョイ 732c-PmjZ)
2022/07/05(火) 07:41:15.60ID:HXH2KDmV0 >>907
VBSを配布して、そこに処理対象ファイルをドラッグドロップしてもらうのが、ユーザ側としては1操作で完結して使いやすいと思う
ユーザに慣れない操作を押し付けて手間を増やしたら本末転倒だしね
ところで「加工」て何するの?
大部分が編集不可の共有ひな型ブックならともかく、人間が好き勝手にいじったブック中から「加工」対象を特定するのは大変だろ
VBSを配布して、そこに処理対象ファイルをドラッグドロップしてもらうのが、ユーザ側としては1操作で完結して使いやすいと思う
ユーザに慣れない操作を押し付けて手間を増やしたら本末転倒だしね
ところで「加工」て何するの?
大部分が編集不可の共有ひな型ブックならともかく、人間が好き勝手にいじったブック中から「加工」対象を特定するのは大変だろ
916デフォルトの名無しさん (スフッ Sdaa-A+Eo)
2022/07/05(火) 08:39:26.47ID:ZlAE1xYZd 別にVBSにこだわる必要は無い
Powershell でも良いでしょ
Powershell でも良いでしょ
917デフォルトの名無しさん (スプッッ Sd33-BAMd)
2022/07/05(火) 09:04:16.75ID:MtIzSAoXd >>915
加工についても恥ずかしながら前スレで相談させてもらって一応解決することができました。
・web上からDL出来る名簿がpdf
・pdfをacrobatでexcel変換するとセル位置や結合が不揃い
・目的は名簿データをそれぞれ横一列のデータにしたい
vbaにて処理は出来るようになったけど、他の人が使いたいという意見があり、今回配布手段についてご相談させてもらった次第です。
https://i.imgur.com/XgHnIpg.png
https://i.imgur.com/cXouZTg.png
加工についても恥ずかしながら前スレで相談させてもらって一応解決することができました。
・web上からDL出来る名簿がpdf
・pdfをacrobatでexcel変換するとセル位置や結合が不揃い
・目的は名簿データをそれぞれ横一列のデータにしたい
vbaにて処理は出来るようになったけど、他の人が使いたいという意見があり、今回配布手段についてご相談させてもらった次第です。
https://i.imgur.com/XgHnIpg.png
https://i.imgur.com/cXouZTg.png
918デフォルトの名無しさん (ワッチョイ 8749-hFrK)
2022/07/05(火) 09:33:47.87ID:gxzY68gk0 ・WebからDLするドキュメントをCSVにでもしてもらえるよう社内調整する
が一番ラクで確か
が一番ラクで確か
919デフォルトの名無しさん (ワッチョイ 8aad-QBhF)
2022/07/05(火) 11:30:39.29ID:X6XwWL+o0 最近、Alt+F11でVBEを開くと、アドインのコードが表示されるようになったんだけど、
仕様が変わったのか、表示されるような設定にしてしまったのか。。
皆さんは表示されますか?
仕様が変わったのか、表示されるような設定にしてしまったのか。。
皆さんは表示されますか?
920デフォルトの名無しさん (アウアウウー Sacf-gU6j)
2022/07/05(火) 11:43:19.49ID:QxOevurCa 上の人間の指示通りにするので悩まない
921デフォルトの名無しさん (ワッチョイ 73da-XUZM)
2022/07/05(火) 11:57:42.97ID:Fkl5GJtU0 >>919
されますよ。
されますよ。
922デフォルトの名無しさん (ワッチョイ 8aad-QBhF)
2022/07/05(火) 12:00:27.76ID:X6XwWL+o0923デフォルトの名無しさん (ワッチョイ 732c-PmjZ)
2022/07/05(火) 12:47:27.21ID:HXH2KDmV0 >>917
成程。流れ見てないけど、ここにマトモに助けてくれる人がいるというのは意外(失礼w)
acrobatによるpdfのexcel変換過程で色んな気まぐれ要素によりフォーマットが乱れそうな予感がするが、それを吸収するコーディング努力の継続こそスキル上達の早道
頑張って下さい
成程。流れ見てないけど、ここにマトモに助けてくれる人がいるというのは意外(失礼w)
acrobatによるpdfのexcel変換過程で色んな気まぐれ要素によりフォーマットが乱れそうな予感がするが、それを吸収するコーディング努力の継続こそスキル上達の早道
頑張って下さい
924デフォルトの名無しさん (ワッチョイ 73da-XUZM)
2022/07/05(火) 19:57:34.88ID:Fkl5GJtU0925デフォルトの名無しさん (ワッチョイ deda-auNL)
2022/07/06(水) 18:47:05.73ID:8WsZe39w0 ちんぽじ
926デフォルトの名無しさん (ワッチョイ 73da-XUZM)
2022/07/06(水) 19:59:54.47ID:D5LMB4PC0 2023でるかもね
927デフォルトの名無しさん (ワッチョイ fa3d-we7L)
2022/07/06(水) 21:31:49.12ID:RzEtlOC+0 VBAxSeleniumでchromeはオプション設定が出来るけどedgeは出来ないと思ってたんだが、出来るんだな。
ネットでもうまくいかないていう情報が多い。
Chromeの場合
Driver.AddArgument ("user-data-dir=" & fso.BuildPath(CurrentDirectory, "chrome_vba"))
Edgeの場合
driver.SetCapability "ms:edgeOptions", "{""args"": [""user-data-dir=" & Replace(fso.BuildPath(CurrentDirectory, "edge_vba"), "\", "\\") & """" & _
"] }"
まあjsonで渡してるんだが、VBAてjsonてこんな風にデータベタ打ちしか方法がない?
ネットでもうまくいかないていう情報が多い。
Chromeの場合
Driver.AddArgument ("user-data-dir=" & fso.BuildPath(CurrentDirectory, "chrome_vba"))
Edgeの場合
driver.SetCapability "ms:edgeOptions", "{""args"": [""user-data-dir=" & Replace(fso.BuildPath(CurrentDirectory, "edge_vba"), "\", "\\") & """" & _
"] }"
まあjsonで渡してるんだが、VBAてjsonてこんな風にデータベタ打ちしか方法がない?
928デフォルトの名無しさん (ワッチョイ 1fda-auNL)
2022/07/08(金) 15:51:01.23ID:vIJsrl8u0 ダウンロードしたVBAマクロ入りファイル、デフォルト無効化が取り消し。MicrosoftがOfficeの仕様を再度変更
https://pc.watch.impress.co.jp/docs/news/1423419.html
https://pc.watch.impress.co.jp/docs/news/1423419.html
929デフォルトの名無しさん (ワッチョイ a359-SbH4)
2022/07/10(日) 15:06:01.33ID:TbXhrDsy0 えぇ((( ;゚Д゚)))恐い
930デフォルトの名無しさん (ワッチョイ 237c-Vv2X)
2022/07/10(日) 16:22:28.20ID:Rxyi1Cuq0 ダウンロードして使うことがないからどっちてもええよ
931デフォルトの名無しさん (アウアウウー Sa09-VQN5)
2022/07/11(月) 01:16:29.22ID:TTL+d6j7a コロコロ変わるのは昔から
また変更あるぞ
また変更あるぞ
932デフォルトの名無しさん (ワッチョイ cd5f-3+7c)
2022/07/11(月) 01:40:13.99ID:vt1vW9IA0 インターネット経由がどうたらというのは、古いマイクロソフトと新しいマイクロソフトの内部抗争にすぎない。
933デフォルトの名無しさん (ワッチョイ 15da-VQN5)
2022/07/11(月) 04:21:24.13ID:/TJLjZUe0 ああゆう最先端の企業でも老害が威張り散らしているのかな
934デフォルトの名無しさん (ワッチョイ cd5f-3+7c)
2022/07/11(月) 04:31:29.20ID:vt1vW9IA0 ビルゲイツ派はAzue妨害派だろうな
935デフォルトの名無しさん (ブーイモ MM43-X/Ck)
2022/07/11(月) 09:41:27.04ID:67sTwPgvM 大口の客がゴネたんだろう
VBAがいつまでも使えるのもそういう方々のお陰なのだからVBAer達は感謝しないと
VBAがいつまでも使えるのもそういう方々のお陰なのだからVBAer達は感謝しないと
936デフォルトの名無しさん (ワッチョイ 15da-VQN5)
2022/07/11(月) 18:14:40.24ID:/TJLjZUe0 分かったよ
937デフォルトの名無しさん (ワッチョイ 03bd-TxaV)
2022/07/13(水) 15:11:11.33ID:cdOR/i1g0 客先から毎日送られてくるpdfに対し、特定の部分だけを抜いてexcelに出すというものを作りたいです
流れとしてはwordで開いてコピペ→そこから必要な部分だけ整形
という流れで考えており概ねできたのですが、pdfをwordに落とした時に文章がそのまま文章でコピーされる時と1行ずつテキストボックスやら画像やらでコピーされる時がありうまく実用化出来ません
上記か、あるいはその他の方法でも良いので安定的にコピーする方法は無いでしょうか?
ちなみにpdfは定型フォーマットに記載された日報のような形式で、手動なら文字はそのままコピペできます、フォーマットはいつも同じですが中の文章は行数が日により異なります
流れとしてはwordで開いてコピペ→そこから必要な部分だけ整形
という流れで考えており概ねできたのですが、pdfをwordに落とした時に文章がそのまま文章でコピーされる時と1行ずつテキストボックスやら画像やらでコピーされる時がありうまく実用化出来ません
上記か、あるいはその他の方法でも良いので安定的にコピーする方法は無いでしょうか?
ちなみにpdfは定型フォーマットに記載された日報のような形式で、手動なら文字はそのままコピペできます、フォーマットはいつも同じですが中の文章は行数が日により異なります
938デフォルトの名無しさん (ワッチョイ cb8e-iSZE)
2022/07/13(水) 17:04:46.28ID:+TgcJMJe0 >>937
客先にテキストでもくれと依頼すればいいだろ
客先にテキストでもくれと依頼すればいいだろ
939デフォルトの名無しさん (アウアウウー Sa09-2HoA)
2022/07/13(水) 17:32:17.47ID:H0DndFW/a pdfを書き換えたい訳じゃなくて中身を読みたいだけなら
pdfreaderを使うのが一番楽
pdfreaderを使うのが一番楽
940デフォルトの名無しさん (ワッチョイ fdce-TkQT)
2022/07/13(水) 18:07:17.76ID:jvbf7mTW0 PDFは人間のため、印刷のために開発された仕組み
データの順番がどんだけ変わっても人間の目には同じに見えるようになってるから、中身をプログラムで自動的に取り出すのには向いてない
厳密には不可能じゃないとしても、ものすごく大変
できるだけ別の方法を考えた方がいい
データの順番がどんだけ変わっても人間の目には同じに見えるようになってるから、中身をプログラムで自動的に取り出すのには向いてない
厳密には不可能じゃないとしても、ものすごく大変
できるだけ別の方法を考えた方がいい
941デフォルトの名無しさん (スッップ Sd43-jJDy)
2022/07/13(水) 18:39:04.67ID:tqig4XWpd そのPDFが紙からスキャンしたものじゃなく文字データとして残ってるなら、ワード経由しなくてもacrobatreaderで開いてコピペするのが早いとは思う。
PDFをExcelに変換する手段があるなら、変換してマクロで必要な所を抽出できそうだけど元ファイル次第では難しいか?
PDFをExcelに変換する手段があるなら、変換してマクロで必要な所を抽出できそうだけど元ファイル次第では難しいか?
942デフォルトの名無しさん (オイコラミネオ MM51-/dRU)
2022/07/13(水) 19:16:11.37ID:RAwbutPOM GOOGLEドライブに入れてドキュメントで開けばOCR使えるからそれを試してみては
943デフォルトの名無しさん (ブーイモ MMc9-Vv2X)
2022/07/13(水) 19:23:52.41ID:F58RRgFgM pdfってhtmlのようなテキストだったりする、意外と知られていない?
944デフォルトの名無しさん (ワッチョイ cd5f-RQFj)
2022/07/13(水) 19:30:34.74ID:XpRrYrAX0 >>937
パワークエリ
パワークエリ
945デフォルトの名無しさん (ワッチョイ fdce-TkQT)
2022/07/13(水) 19:51:06.77ID:jvbf7mTW0946デフォルトの名無しさん (オイコラミネオ MM51-/dRU)
2022/07/13(水) 20:29:31.07ID:RAwbutPOM947デフォルトの名無しさん (ワッチョイ cb8e-iSZE)
2022/07/13(水) 20:29:35.01ID:+TgcJMJe0948デフォルトの名無しさん (オイコラミネオ MM51-/dRU)
2022/07/13(水) 20:34:43.23ID:RAwbutPOM949デフォルトの名無しさん (ワッチョイ cb8e-iSZE)
2022/07/13(水) 20:40:59.71ID:+TgcJMJe0950デフォルトの名無しさん (オイコラミネオ MM51-/dRU)
2022/07/13(水) 20:55:32.87ID:RAwbutPOM 馬鹿じゃねーよ
テキトーに言ってるだけだ
テキトーに言ってるだけだ
951デフォルトの名無しさん (ワッチョイ 355f-TkQT)
2022/07/13(水) 21:36:26.72ID:bpgpUpce0 バイナリファイルをマークアップされてるって表現する人はじめてみた
952デフォルトの名無しさん (ワッチョイ cbda-VQN5)
2022/07/13(水) 22:51:54.33ID:bvCBiwjA0 とはいっても取引先からのデータは大半がpdfだからなぁ
953デフォルトの名無しさん (スフッ Sd43-TkQT)
2022/07/13(水) 23:54:44.21ID:vJ6Ng0OKd そんなもん会社によるだろ
言えばExcelやCSVで送ってくれるとこも普通にある
言えばExcelやCSVで送ってくれるとこも普通にある
954デフォルトの名無しさん (ワッチョイ 2302-ws48)
2022/07/14(木) 00:12:44.49ID:X42JNt2t0 マーキングするために会社の上司が部下の女に触りまくってるじゃん
955デフォルトの名無しさん (スプッッ Sd03-PZPQ)
2022/07/14(木) 07:26:28.96ID:5ehEa+FTd 技術力だけで生きていくか、コミュ力も高めて生きていくかの「差」が今回の質問で明らかになったね
今回の場合、コミュ力あるやつならとっくに客先はpdfとは別にcsvとかテキストファイルを送る方向で動いてるよ
俺はコミュ力を高めていく
お前らは今後も無理難題をひたすら解決する技術力を高めていけw
今回の場合、コミュ力あるやつならとっくに客先はpdfとは別にcsvとかテキストファイルを送る方向で動いてるよ
俺はコミュ力を高めていく
お前らは今後も無理難題をひたすら解決する技術力を高めていけw
956デフォルトの名無しさん (オイコラミネオ MM51-/dRU)
2022/07/14(木) 08:00:06.43ID:E22ufzJOM 今回のデータをcsvで頂戴したく存じます
コミュも何も一行メール送るだけでいいだろう
むしろこれ出来ないなら何もできんだろ
コミュも何も一行メール送るだけでいいだろう
むしろこれ出来ないなら何もできんだろ
957デフォルトの名無しさん (アウアウウー Sa09-DHlW)
2022/07/14(木) 08:06:18.41ID:KsBnasMha 社内規定で社外に送信するデータはPDFとなっておりますので、ご期待に沿えず申し訳ありません。
958デフォルトの名無しさん (JP 0H2b-beHi)
2022/07/14(木) 08:12:38.64ID:1tikFi/NH そういうコミュニケーションとれない奴は、
仕様を決めるときにもコミュニケーションとれないから思い込みで作るまである
仕様を決めるときにもコミュニケーションとれないから思い込みで作るまである
959デフォルトの名無しさん (スッップ Sd43-jJDy)
2022/07/14(木) 08:14:11.08ID:YsqOWTP3d 根本解決を目指すアドバイスはいいけど、どんなデータかも質問者と客先の状況も分からないのに、データ貰えば解決(ドャァは乱暴じゃない?
少なくともwordで開いても文字認識がまばらだったりするって時点で、綺麗な様式から出力したデータじゃないのは確かだし、質問者がそういう回答を求めてないとは思わない?
少なくともwordで開いても文字認識がまばらだったりするって時点で、綺麗な様式から出力したデータじゃないのは確かだし、質問者がそういう回答を求めてないとは思わない?
960デフォルトの名無しさん (オイコラミネオ MM51-/dRU)
2022/07/14(木) 08:21:48.07ID:E22ufzJOM >>959
OCRか元データもらう以外の解決策があるなら、かなり聴きたい
OCRか元データもらう以外の解決策があるなら、かなり聴きたい
961デフォルトの名無しさん (ラクッペペ MMcb-0W+b)
2022/07/14(木) 08:24:09.60ID:lnbsEUJQM OCRのがマシって回答出てるだろ
現実から目をそらすな
現実から目をそらすな
962デフォルトの名無しさん (ワッチョイ bd49-ezAM)
2022/07/14(木) 08:49:50.07ID:vNge93QI0 最初に「CSVなどで依頼しても無理でした」とか書いてくれれば無駄な争いは避けたのかもな
964デフォルトの名無しさん (スッププ Sd43-CglE)
2022/07/14(木) 21:34:12.70ID:L5ignm6zd A列のセルに列挙された複数単語の商品名から重複した単語のみを除くことは可能でしょうか?
A
1 RED BLUE APPLE
2 RED BLUE BANANA
3 RED BLUE GREEN ORANGE
4 RED BLUE YELLOW WHITE GRAPE
5 RED BLUE WHITE CHERRY
↑これらのデータを↓のように整形したいです。
B
1 APPLE
2 BANANA
3 GREEN ORANGE
4 YELLOW GRAPE
5 CHERRY
「RED BLUE APPLE」は同一セル内にスペースで区切られて入力されています。
データ量は1回あたり100行程度になります。セル内の単語、単語の数は毎回異なります。
ご教示いただけますと幸いです。よろしくお願いいたします。
A
1 RED BLUE APPLE
2 RED BLUE BANANA
3 RED BLUE GREEN ORANGE
4 RED BLUE YELLOW WHITE GRAPE
5 RED BLUE WHITE CHERRY
↑これらのデータを↓のように整形したいです。
B
1 APPLE
2 BANANA
3 GREEN ORANGE
4 YELLOW GRAPE
5 CHERRY
「RED BLUE APPLE」は同一セル内にスペースで区切られて入力されています。
データ量は1回あたり100行程度になります。セル内の単語、単語の数は毎回異なります。
ご教示いただけますと幸いです。よろしくお願いいたします。
965デフォルトの名無しさん (ワッチョイ 1baa-2HoA)
2022/07/14(木) 21:34:41.90ID:TfuP8Uyl0 6進数?を通常の時刻表記に直す方法教えてください。
例)1.3→1:30
2.45→2:45
例)1.3→1:30
2.45→2:45
966デフォルトの名無しさん (アウアウウー Sa09-/dRU)
2022/07/14(木) 21:37:17.58ID:TLlcUFbPa967デフォルトの名無しさん (US 0Ha3-TUM9)
2022/07/14(木) 21:41:07.21ID:0fmyum11H >>955
コミュ力の定義はなんですか?典型的なインデックスは何ですか?
コミュ力の定義はなんですか?典型的なインデックスは何ですか?
968デフォルトの名無しさん (スプッッ Sd43-iSZE)
2022/07/14(木) 21:44:41.57ID:zzetjp0td970デフォルトの名無しさん (スッップ Sd43-jVDF)
2022/07/14(木) 23:23:30.65ID:BkEIWbQgd >>964
自分ならだけどこんな感じかと Mainのループは最大行数を取得してくれ _をスペースに置き換えてくれ
Sub_Main()
____Dim_i_As_Long
____For_i_=_1_To_5
________Dim_a_As_String
________a_=_Cells(i,_1).Value
________Dim_j_As_Long
________For_j_=_1_To_5
____________If_i_<>_j_Then
________________a_=_CutWord(a,_Cells(j,_1).Value)
____________End_If
________Next
________Cells(i,_2).Value_=_a
____Next
End_Sub
自分ならだけどこんな感じかと Mainのループは最大行数を取得してくれ _をスペースに置き換えてくれ
Sub_Main()
____Dim_i_As_Long
____For_i_=_1_To_5
________Dim_a_As_String
________a_=_Cells(i,_1).Value
________Dim_j_As_Long
________For_j_=_1_To_5
____________If_i_<>_j_Then
________________a_=_CutWord(a,_Cells(j,_1).Value)
____________End_If
________Next
________Cells(i,_2).Value_=_a
____Next
End_Sub
971デフォルトの名無しさん (スッップ Sd43-jVDF)
2022/07/14(木) 23:23:50.53ID:BkEIWbQgd Function_CutWord(a_As_String,_b_As_String)_As_String
____Dim_aa()_As_String
____aa_=_Split(a,_"_")
____Dim_bb()_As_String
____bb_=_Split(b,_"_")
____Dim_c_As_String
____c_=_""
____Dim_i_As_Long
____For_i_=_LBound(aa)_To_UBound(aa)
________Dim_j_As_Long
________For_j_=_LBound(bb)_To_UBound(bb)
____________If_aa(i)_=_bb(j)_Then
________________Exit_For
____________End_If
________Next
________If_j_>_UBound(bb)_Then
____________If_c_<>_""_Then
________________c_=_c_&_"_"
____________End_If
____________c_=_c_&_aa(i)
________End_If
____Next
____CutWord_=_c
End_Function
____Dim_aa()_As_String
____aa_=_Split(a,_"_")
____Dim_bb()_As_String
____bb_=_Split(b,_"_")
____Dim_c_As_String
____c_=_""
____Dim_i_As_Long
____For_i_=_LBound(aa)_To_UBound(aa)
________Dim_j_As_Long
________For_j_=_LBound(bb)_To_UBound(bb)
____________If_aa(i)_=_bb(j)_Then
________________Exit_For
____________End_If
________Next
________If_j_>_UBound(bb)_Then
____________If_c_<>_""_Then
________________c_=_c_&_"_"
____________End_If
____________c_=_c_&_aa(i)
________End_If
____Next
____CutWord_=_c
End_Function
972デフォルトの名無しさん (ワッチョイ fdce-TkQT)
2022/07/14(木) 23:43:51.22ID:qWN4wD1T0973デフォルトの名無しさん (ワッチョイ cbda-VQN5)
2022/07/14(木) 23:52:28.92ID:fadaSACN0 気持ちわりぃなそのコード
974デフォルトの名無しさん (アウアウウー Sa09-/dRU)
2022/07/15(金) 00:00:11.50ID:9RgIX2Zba975デフォルトの名無しさん (アウアウウー Sa09-MhTr)
2022/07/15(金) 00:30:48.57ID:1ECLhEg6a なんでスペースがアンダーバーなんだとは思うな
俺も見た目が受け付けなかったわ
俺も見た目が受け付けなかったわ
976デフォルトの名無しさん (スプッッ Sd43-iSZE)
2022/07/15(金) 00:48:33.55ID:kd+ZBNkRd いや、そもそも自作自演だろ
977デフォルトの名無しさん (ワッチョイ fdce-TkQT)
2022/07/15(金) 01:18:26.31ID:mFCZ39Ni0 Sub Main()
Dim a As String
Dim i As Long
Dim j As Long
For i = 1 To 5
a = Cells(i, 1)
For j = 1 To 5
If i <> j Then a = CutWord(a, Cells(j, 1))
Next
Cells(i, 2) = a
Next
End Sub
Function CutWord(a As String, b As String) As String
Dim aa() As String
Dim bb() As String
Dim c As String
Dim i As Long
aa = Split(a, " ")
bb = Split(b, " ")
For i = LBound(aa) To UBound(aa)
Dim j As Long
For j = LBound(bb) To UBound(bb)
If aa(i) = bb(j) Then Exit For
Next
If j > UBound(bb) Then
If c <> "" Then c = c & " "
c = c & aa(i)
End If
Next
CutWord = c
End Function
Dim a As String
Dim i As Long
Dim j As Long
For i = 1 To 5
a = Cells(i, 1)
For j = 1 To 5
If i <> j Then a = CutWord(a, Cells(j, 1))
Next
Cells(i, 2) = a
Next
End Sub
Function CutWord(a As String, b As String) As String
Dim aa() As String
Dim bb() As String
Dim c As String
Dim i As Long
aa = Split(a, " ")
bb = Split(b, " ")
For i = LBound(aa) To UBound(aa)
Dim j As Long
For j = LBound(bb) To UBound(bb)
If aa(i) = bb(j) Then Exit For
Next
If j > UBound(bb) Then
If c <> "" Then c = c & " "
c = c & aa(i)
End If
Next
CutWord = c
End Function
978964 (スッップ Sd43-CglE)
2022/07/15(金) 02:31:06.28ID:bSLom3XEd 早速ご回答いただいた皆様、ありがとうございました!
ほぼ思い通りの結果を得ることができました。
ちなみにですが、
例えばA6に「DOG CAT RABBIT COW BEAR」というデータがある場合、
各単語がどれとも重複していないため「DOG CAT RABBIT COW BEAR」そのまま5単語が残ります。
各データのユニークな単語を最小数で残すことは可能でしょうか?
下記のような形です。
A
1 RED BLUE APPLE
2 RED BLUE BANANA
3 RED BLUE GREEN ORANGE
4 RED BLUE YELLOW WHITE GRAPE
5 RED BLUE WHITE CHERRY
6 DOG CAT RABBIT COW BEAR
↓
B
1 APPLE
2 BANANA
3 GREEN ORANGE
4 YELLOW GRAPE
5 CHERRY
6 DOG
度々申し訳ございませんが、よろしくお願いいたします。
ほぼ思い通りの結果を得ることができました。
ちなみにですが、
例えばA6に「DOG CAT RABBIT COW BEAR」というデータがある場合、
各単語がどれとも重複していないため「DOG CAT RABBIT COW BEAR」そのまま5単語が残ります。
各データのユニークな単語を最小数で残すことは可能でしょうか?
下記のような形です。
A
1 RED BLUE APPLE
2 RED BLUE BANANA
3 RED BLUE GREEN ORANGE
4 RED BLUE YELLOW WHITE GRAPE
5 RED BLUE WHITE CHERRY
6 DOG CAT RABBIT COW BEAR
↓
B
1 APPLE
2 BANANA
3 GREEN ORANGE
4 YELLOW GRAPE
5 CHERRY
6 DOG
度々申し訳ございませんが、よろしくお願いいたします。
979デフォルトの名無しさん (ワンミングク MMa3-p0Nn)
2022/07/15(金) 02:36:26.14ID:WFW52ORLM いつものあいつだぞ
980デフォルトの名無しさん (ワッチョイ fdce-TkQT)
2022/07/15(金) 06:01:47.46ID:mFCZ39Ni0 最小限の定義が不明
981デフォルトの名無しさん (スフッ Sd43-TkQT)
2022/07/15(金) 07:03:30.04ID:ymO8mssad Sub Main()
Dim a As String
Dim i As Long, j As Long
Dim last As Long
last = Cells(Rows.Count, 1).End(xlUp).Row
For i = 1 To last
a = Cells(i, 1)
For j = 1 To last
If i <> j Then a = CutWord(a, Cells(j, 1))
Next j
Cells(i, 2) = a
Next i
End Sub
Function CutWord(a As String, b As String) As String
Dim aa() As String
Dim bb() As String
Dim c As String
Dim i As Long, j As Long
aa = Split(a, " ")
bb = Split(b, " ")
For i = LBound(aa) To UBound(aa)
For j = LBound(bb) To UBound(bb)
If aa(i) = bb(j) Then Exit For
Next j
If j > UBound(bb) Then c = c & aa(i) & " "
Next i
CutWord = Trim(c)
End Function
Dim a As String
Dim i As Long, j As Long
Dim last As Long
last = Cells(Rows.Count, 1).End(xlUp).Row
For i = 1 To last
a = Cells(i, 1)
For j = 1 To last
If i <> j Then a = CutWord(a, Cells(j, 1))
Next j
Cells(i, 2) = a
Next i
End Sub
Function CutWord(a As String, b As String) As String
Dim aa() As String
Dim bb() As String
Dim c As String
Dim i As Long, j As Long
aa = Split(a, " ")
bb = Split(b, " ")
For i = LBound(aa) To UBound(aa)
For j = LBound(bb) To UBound(bb)
If aa(i) = bb(j) Then Exit For
Next j
If j > UBound(bb) Then c = c & aa(i) & " "
Next i
CutWord = Trim(c)
End Function
982デフォルトの名無しさん (スッププ Sd43-jVDF)
2022/07/15(金) 07:30:27.66ID:KClfAjojd 俺のコードをいじってくれてうれしいが
Valueとったり改行いじったりしてるだけで行数減らしてるだけなんて結局マイルールのこだわりを主張してるだけなんだよな
こんな方法あるぜってのが見たいわ
>>978
6が「DOG」になる最小数という意味が不明
先頭の単語を返すだけならCutWordの最後でaとcが同じ値になったらaa(LBound(aa))を返すようにすればいいのでは
Valueとったり改行いじったりしてるだけで行数減らしてるだけなんて結局マイルールのこだわりを主張してるだけなんだよな
こんな方法あるぜってのが見たいわ
>>978
6が「DOG」になる最小数という意味が不明
先頭の単語を返すだけならCutWordの最後でaとcが同じ値になったらaa(LBound(aa))を返すようにすればいいのでは
983デフォルトの名無しさん (アウアウウー Sa09-/dRU)
2022/07/15(金) 07:47:41.51ID:9RgIX2Zba value取るのは改悪で草
984デフォルトの名無しさん (アウアウウー Sa09-DHlW)
2022/07/15(金) 08:08:12.42ID:DqNyEc18a >>964
複数回現れる単語を削除すればいいのか?
Sub X964()
Dim Sheet As Worksheet: Set Sheet = ...
Dim Dictionary As Object: Set Dictionary = CreateObject("Scripting.Dictionary")
Dim LastRow As Long: LastRow = SheetSheet.Cells(Rows.Count, "A").End(xlUp).Row
Dim Row As Long
For Row = 1 To LastRow
Dim Word As Variant
For Each Word In Split(Sheet.Cells(Row, "A").Value, " ")
If Dictionary.Exists(Word) Then
Dictionary(Word) = Dictionary(Word) + 1
Else
Dictionary.Add Word, 1
End If
Next
Next
For Row = 1 To LastRow
Dim Uniques As String: Uniques = ""
For Each Word In Split(Sheet.Cells(Row, "A").Value, " ")
If 1 < Dictionary(Word) Then
If Uniques = "" Then
Uniques = Word
Else
Uniques = Uniques & " " & Word
End If
End If
Next
Sheet.Cells(Row, "B").Value = Uniques
Next
End Sub
複数回現れる単語を削除すればいいのか?
Sub X964()
Dim Sheet As Worksheet: Set Sheet = ...
Dim Dictionary As Object: Set Dictionary = CreateObject("Scripting.Dictionary")
Dim LastRow As Long: LastRow = SheetSheet.Cells(Rows.Count, "A").End(xlUp).Row
Dim Row As Long
For Row = 1 To LastRow
Dim Word As Variant
For Each Word In Split(Sheet.Cells(Row, "A").Value, " ")
If Dictionary.Exists(Word) Then
Dictionary(Word) = Dictionary(Word) + 1
Else
Dictionary.Add Word, 1
End If
Next
Next
For Row = 1 To LastRow
Dim Uniques As String: Uniques = ""
For Each Word In Split(Sheet.Cells(Row, "A").Value, " ")
If 1 < Dictionary(Word) Then
If Uniques = "" Then
Uniques = Word
Else
Uniques = Uniques & " " & Word
End If
End If
Next
Sheet.Cells(Row, "B").Value = Uniques
Next
End Sub
985デフォルトの名無しさん (アウアウウー Sa09-DHlW)
2022/07/15(金) 08:10:06.84ID:DqNyEc18a >>973
気持ち悪いとは思わないけどちょっと非効率かなとは思う
気持ち悪いとは思わないけどちょっと非効率かなとは思う
986デフォルトの名無しさん (ワッチョイ cbda-VQN5)
2022/07/15(金) 08:49:49.31ID:pxeFAKZo0 そのコードカッケェ!
987デフォルトの名無しさん (スフッ Sd43-TkQT)
2022/07/15(金) 09:42:45.28ID:D6klNH8hd Sub sample3()
Dim r As Long
Dim z As Long '最終行
Dim s As String '全データ
Dim a() As String '単語リスト
Dim i As Long
z = Cells(Rows.Count, 1).End(xlUp).Row
For r = 1 To z
Cells(r, 2) = Cells(r, 1)
s = s & Cells(r, 1) & " "
Next r
a = Split(s, " ")
For i = LBound(a) To UBound(a)
If Len(s) - Len(a(i)) > Len(Replace(s, a(i), "")) Then '2回以上出てくるか
For r = 1 To z
Cells(r, 2) = Trim(Replace(Cells(r, 2), a(i), "")) '各セルから削除
Next r
End If
Next i
End Sub
Dim r As Long
Dim z As Long '最終行
Dim s As String '全データ
Dim a() As String '単語リスト
Dim i As Long
z = Cells(Rows.Count, 1).End(xlUp).Row
For r = 1 To z
Cells(r, 2) = Cells(r, 1)
s = s & Cells(r, 1) & " "
Next r
a = Split(s, " ")
For i = LBound(a) To UBound(a)
If Len(s) - Len(a(i)) > Len(Replace(s, a(i), "")) Then '2回以上出てくるか
For r = 1 To z
Cells(r, 2) = Trim(Replace(Cells(r, 2), a(i), "")) '各セルから削除
Next r
End If
Next i
End Sub
988デフォルトの名無しさん (アウアウウー Sa09-jVDF)
2022/07/15(金) 09:47:20.06ID:kfkt8EAfa 効率どうこう言う前に重複した単語がでるような関数はどうかと思うのw
989デフォルトの名無しさん (スプッッ Sd43-iSZE)
2022/07/15(金) 13:22:47.81ID:kd+ZBNkRd ここでRuby馬鹿がRubyではこうなるとか書くのは見えている
990デフォルトの名無しさん (ワッチョイ 4bda-TkQT)
2022/07/15(金) 19:00:37.71ID:f/pTHFXb0 オレンジ色のオレンジはどうなの?
991デフォルトの名無しさん (ワッチョイ cbda-VQN5)
2022/07/15(金) 19:14:37.65ID:pxeFAKZo0 どんなに良コード書いても難癖付けられるのがこのスレ
992デフォルトの名無しさん (ワッチョイ 05da-k1yI)
2022/07/16(土) 02:37:29.28ID:hVvvoOFI0 userformをshowした直後にunloadするとexcelが落ちるのは何とかならんかのぉ
hideじゃだめなんじゃunloadじゃないと
hideじゃだめなんじゃunloadじゃないと
993デフォルトの名無しさん (ワッチョイ 9d5f-GsVe)
2022/07/16(土) 07:52:34.81ID:1SMMBEmo0 UserForm1.Show vbModeless
Unload UserForm1
って意味なら、別に落ちなかったけど
Unload UserForm1
って意味なら、別に落ちなかったけど
994デフォルトの名無しさん (ワッチョイ 5a42-PUxa)
2022/07/16(土) 08:52:29.38ID:eHBMNsDF0 逆になんでhideじゃダメなの
995デフォルトの名無しさん (ワッチョイ 912f-cIkS)
2022/07/16(土) 13:26:34.40ID:NLVpHfZz0 とりあえずEXCELが落ちるっていうコードと環境出せ
話はそれからだ
話はそれからだ
996デフォルトの名無しさん (ワッチョイ 762c-lpz1)
2022/07/16(土) 18:00:44.38ID:2WLM14wy0 >>978
Ruby で作った
require "csv"
input_str = <<"EOT"
RED,BLUE,APPLE
RED,BLUE,BANANA
RED,BLUE,GREEN,ORANGE
RED,BLUE,YELLOW,WHITE,GRAPE
RED,BLUE,WHITE,CHERRY
DOG,CAT,RABBIT,COW,BEAR
EOT
csv = CSV.new( input_str )
input_ary = csv.read # 2次元配列
# 各単語の出現回数を数える。Hash の初期値は、0
hash = input_ary.each_with_object( Hash.new( 0 ) ) { |row, hash|
row.each { |word| hash[ word ] += 1 }
}
# 出現回数が2以上の単語を削除する
input_ary.map! { |row|
row.delete_if { |word| hash[ word ] >= 2 }
row
}
# 2次元配列を、CSV 文字列に変換する
csv_str = input_ary.map( &:to_csv ).join
puts csv_str
Ruby で作った
require "csv"
input_str = <<"EOT"
RED,BLUE,APPLE
RED,BLUE,BANANA
RED,BLUE,GREEN,ORANGE
RED,BLUE,YELLOW,WHITE,GRAPE
RED,BLUE,WHITE,CHERRY
DOG,CAT,RABBIT,COW,BEAR
EOT
csv = CSV.new( input_str )
input_ary = csv.read # 2次元配列
# 各単語の出現回数を数える。Hash の初期値は、0
hash = input_ary.each_with_object( Hash.new( 0 ) ) { |row, hash|
row.each { |word| hash[ word ] += 1 }
}
# 出現回数が2以上の単語を削除する
input_ary.map! { |row|
row.delete_if { |word| hash[ word ] >= 2 }
row
}
# 2次元配列を、CSV 文字列に変換する
csv_str = input_ary.map( &:to_csv ).join
puts csv_str
997デフォルトの名無しさん (アウアウウー Sa39-eHP4)
2022/07/16(土) 19:45:04.74ID:vYu+PcKIa >>996
廃止決定した言語じゃん
廃止決定した言語じゃん
998デフォルトの名無しさん (ワッチョイ 5ada-XFSu)
2022/07/17(日) 00:22:00.69ID:lEW2LcQY0 あんたら色んな言語を習得していてエリートなんだな?
5ちゃんねるなんかにいてもったいねーわ
5ちゃんねるなんかにいてもったいねーわ
999デフォルトの名無しさん (ワッチョイ 05da-k1yI)
2022/07/17(日) 02:44:22.32ID:rPHWMq+g01000デフォルトの名無しさん (ワッチョイ 5a63-4HbS)
2022/07/17(日) 04:50:23.78ID:fLi6s9i70 こいつの書くコード、rubyとしてもクソコードなのがほんとひどい
10011001
Over 1000Thread このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 77日 2時間 26分 42秒
新しいスレッドを立ててください。
life time: 77日 2時間 26分 42秒
レス数が1000を超えています。これ以上書き込みはできません。
ニュース
- バリ島で男子生徒ら集団万引きか、防犯カメラ映像が拡散 京都の大谷中学・高校が「窃盗行為」謝罪★4 [七波羅探題★]
- 中国軍機レーダー照射、トランプ氏沈黙突く 試される日本外交 [蚤の市★]
- 【広島】「万引きした人を追跡」コンビニ店員の男性(46)を果物ナイフで刺したか 中国籍の少年(17)を殺人未遂容疑で現行犯逮捕 [ぐれ★]
- 【地震】青森県で震度6強 長周期地震動も 津波注意報すべて解除 ★7 [ぐれ★] [ぐれ★]
- 【サッカー】58歳カズ「オファーが来ている」 J3福島と近日中にも交渉 早ければ年内にも決断 [征夷大将軍★]
- 【速報】気象庁は津波注意報すべて解除 [蚤の市★]
- 【実況】博衣こよりのえちえち朝こよ🧪
- (´・ω・`)おはよ
- さかまた「過呼吸になった」かなた「耳聞こえない」ござる「声出ない」まつり「ご飯食べれない」
- 【画像】カリカリ女、脱いだらすごい😨 [632966346]
- くそしてかがやけ
- 🪬本日のコンマ占い🧿
