[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 02/26 17:47 / Filesize : 275 KB / Number-of Response : 1016
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Excel VBA 質問スレ Part76



1 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 02:23:41.78 ID:2t63WK/jM.net]
!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

897 名前:デフォルトの名無しさん mailto:sage [2022/07/02(土) 09:41:11.94 ID:qJpeB53K0.net]
DSのプチコンでローカル変数のありがたさを思い出したな

898 名前:デフォルトの名無しさん [2022/07/02(土) 09:55:37.37 ID:COZLaCzbF.net]
局部もろ観え

899 名前:デフォルトの名無しさん (ワッチョイ 87da-3xOz) mailto:sage [2022/07/02(土) 12:13:59 ID:vnn63W/20.net]
>>885
何回も変数宣言を実行することになるのかな。そうなら理論的にはメモリの無駄と速度の低下が発生するんじゃないの

900 名前:デフォルトの名無しさん mailto:sage [2022/07/02(土) 13:17:36.46 ID:Y5ZkAX2p0.net]
ReDimの存在

901 名前:デフォルトの名無しさん (ワッチョイ 8a01-BQ8I) mailto:sage [2022/07/02(土) 13:53:14 ID:At3W7bIA0.net]
>>889
宣言文と実行文の違いを学ぼうか

>>890
ReDim は実行文だよ

902 名前:デフォルトの名無しさん mailto:sage [2022/07/02(土) 14:54:16.39 ID:7TC/SMOx0.net]
久々に熱いスレになったね

903 名前:デフォルトの名無しさん mailto:sage [2022/07/02(土) 16:46:05.89 ID:vnn63W/20.net]
>>891
普通の文と同じように実行されるわけはないと思ったんで疑問形で書いたんだけど

でもどういう法則があるのかよくわからんから質問したの

宣言文と実行文で検索しても参考になる記事はなかった

教えてくれませんか?

904 名前:デフォルトの名無しさん mailto:sage [2022/07/02(土) 17:08:32.73 ID:At3W7bIA0.net]
>>893
VBA 宣言 ループ とかでググればいいかと
https://thom.hateblo.jp/entry/2018/06/02/185716
一部の例外はあるけど基本的に宣言文は最初にまとめて処理される
なのでサブルーチンに入った時点で変数は作成されるからメモリーの無駄とか速度低下はないよ

905 名前:デフォルトの名無しさん (ワッチョイ 87da-3xOz) mailto:sage [2022/07/02(土) 18:56:13 ID:vnn63W/20.net]
>>894
おおー、なるほど。
よくわかった、ありがとさん。



906 名前:デフォルトの名無しさん mailto:sage [2022/07/03(日) 12:22:53.01 ID:Jv7ZJhwXr.net]
>>882
なんでわざわざ煽る言い方するわけ?
マシで理解できないわ

907 名前:デフォルトの名無しさん mailto:sage [2022/07/03(日) 12:39:04.19 ID:v1f+WlYn0.net]
スレ立ち上げ当初みたいに、こうやって真面目な議論してれば良スレなんだよな。

あんたらハメ外せばすぐ毛の話。。。

908 名前:デフォルトの名無しさん mailto:sage [2022/07/03(日) 13:05:07.71 ID:Fpu/jUUc0.net]
質問者の質も落ちた

909 名前:デフォルトの名無しさん mailto:sage [2022/07/03(日) 16:27:46.74 ID:v1f+WlYn0.net]
初期の頃、Excel板かここかは忘れたけど、質問も即答してくださる凄い回答者が何人かいた覚えがある。

今はいなくなったよね。
質問側も意味不明な質問ばかり。

910 名前:デフォルトの名無しさん mailto:sage [2022/07/03(日) 17:15:16.28 ID:ur8aI9T40.net]
そういえば昔って質問にもテンプレなかったっけ

911 名前:デフォルトの名無しさん mailto:sage [2022/07/03(日) 18:58:18.36 ID:95K4DRnu0.net]
てか議論するスレでもないけどな

912 名前:デフォルトの名無しさん mailto:sage [2022/07/03(日) 21:36:18.00 ID:v1f+WlYn0.net]
思い出した。昔はいくつかのVBAスレがあった

913 名前:デフォルトの名無しさん mailto:sage [2022/07/03(日) 21:53:26.02 ID:+uLGaU5J0.net]
【VBA エキスパート】 Excel / Access https://kizuna.5ch.net/test/read.cgi/lic/1640108986/
素人にVBA仕込んだ https://medaka.5ch.net/t

914 名前:est/read.cgi/prog/1642131517/
VBAのフリーランスエンジニアは需要ありますか? https://medaka.5ch.net/test/read.cgi/prog/1598637098/
Excel VBA 質問スレ Part76 https://mevius.5ch.net/test/read.cgi/tech/1651339421/
VBAなんでも質問スレ Part3 https://mevius.5ch.net/test/read.cgi/tech/1631184381/
Access VBA 質問スレ Part2 https://mevius.5ch.net/test/read.cgi/tech/1544620479/
★今VBAを勉強してるんだが★ https://medaka.5ch.net/test/read.cgi/php/1214626617/
[]
[ここ壊れてます]

915 名前:デフォルトの名無しさん (オッペケ Sr23-BXQt) mailto:sage [2022/07/04(月) 12:09:05 ID:0Cy5iXrvr.net]
回答者はすぐマウントとってくるしな
>>882みたいな質問者なのにマウント取ってくる意味わからんやつもいるし
能力低すぎとか、われわれのような複雑な~って頭おかしすぎるだろ



916 名前:デフォルトの名無しさん [2022/07/04(月) 13:01:53.71 ID:OO2ZWbG3d.net]
>>904
それ、しつこくForがどうのと聞いていた例のあいつだから

917 名前:デフォルトの名無しさん mailto:sage [2022/07/04(月) 16:21:37.95 ID:vF9E34H30.net]
>われわれのように

うん。われわれって誰?
脳内でしょ恐らく

ふつーよ、自分から複雑な事やっていますアピールとかするかぁ??
もしかして釣られているのか俺ら

918 名前:デフォルトの名無しさん mailto:sage [2022/07/04(月) 16:28:28.96 ID:g5E8ZW1ad.net]
決まった様式のExcelファイルがあって、それを見やすく加工するマクロを組んで自信で使ってた際に、それを部内に展開したいってなった場合どう配布するのが正解なんだろう。
使う人はマクロの知識は全くないものとして。

1.xlamにして配布
アドインの設定をしてあげる必要がある。
使用頻度の低い人にアドインを入れるメリットが薄い。

2.マクロだけ入れたxlsmを配布
加工したいxlsxファイルと同時に開いてもらってマクロを実行してもらう。
手間が増える。

3.VBSに書き換えて配布
書き換えが面倒。

4.VBSとxlsmを配布してVBS実行でxlsm起動とマクロ実行
処理に時間がかかりそう。

使用頻度の高くないマクロをアドインとして登録するのは起動時間のロスになりそうだから避けたいんだけど、他の人に特定のマクロを手軽に実行させるのはどういう方法がいいだろうか?

919 名前:デフォルトの名無しさん [2022/07/04(月) 17:17:05.04 ID:CvyJwule0.net]
>>907
> 2.マクロだけ入れたxlsmを配布
> 加工したいxlsxファイルと同時に開いてもらってマクロを実行してもらう。
> 手間が増える。

これでいい。手間って配布の手間のこと?
共有サーバーのどっか特定の場所に読み取り専用にしたxlsmファイル置いといて
ここのマクロファイル使って作業してくれって告知だけすればいい
不具合が見つかって修正した場合も同名ファイルで上書きするだけだから楽だと思うよ

920 名前:デフォルトの名無しさん mailto:sage [2022/07/04(月) 17:57:33.89 ID:oo1ug/2UD.net]
俺は上書き保存が怖いので.xltmを渡してる

921 名前:デフォルトの名無しさん mailto:sage [2022/07/04(月) 18:50:46.28 ID:tF6z07pca.net]
>>909
リードオンリーで開くにしとけばいいだけじゃね?

922 名前:デフォルトの名無しさん mailto:sage [2022/07/04(月) 19:05:52.33 ID:g5E8ZW1ad.net]
>>908
Excelファイル2つ開いてマクロ実行して閉じるっていうのが操作的に手間かなと思ったけど、共有フォルダに置いといてそれを開いて使ってもらうのは無難に使いやすそう。ありがとう。

後出しで申し訳ないんだけど、うちの会社のPCがウイルス対策だとかで毎日起動時にマクロ有効化設定を強制オフ(有効化メッセージ出ずにオフになるやつ)にされるせいで、トラストセンターから毎日有効化設定してね、っていう雑な仕組みになってるんだ。
自身は設定オンにするVBSなりbatで対応してるけど、他の人だとExcel開いてトラストセンターで設定変更の事前動作も必要に。

アドインやVBSなら有効化しなくても動作するんだけど、そうなるとドラッグドロップで動作するVBSだと使う側の手間は省けるだろうか。

923 名前:デフォルトの名無しさん mailto:sage [2022/07/04(月) 19:58:33.04 ID:Ujf5qvvVd.net]
1. xlsmを共有フォルダに保存
2. 読み取り専用で開く
3. xlsm上の別シートに出力結果をVBAで作成
4. 出力結果シートを新規ブックにVBAで移動 (ws.move)
5. 新規ブックをダイアログボックスで保存させる


毎回これでやってる

924 名前:デフォルトの名無しさん [2022/07/04(月) 22:40:20.14 ID:CvyJwule0.net]
>>911
この環境下でも
(セキュリティを無効化して対象のxlsmを開く)VBSなりbatファイルの実体を共有に置いて
そのショートカットだけを配布がベストだと思う

> ドラッグドロップで動作するVBSだと使う側の手間は省けるだろうか
組織内のユーザーのリテラシーにもよるけど、
xlsmでもWorkbook_Openで即ファイルピックアップダイアログ開かせれば大差ないし、
なにより保守がしんどいでしょ

もし複雑な加工内容への変更依頼がきたら?
あるいは今後別のマクロの作成依頼が来て、それもすべてVBSで配布しろと言われるかもしれない

VBEもIDEとしてはアレだけど、
ブレークポイント置けないDebug系メソッドないモジュール分割気軽にできないVBSで開発し続けるの何倍も大変だと思うよ

925 名前:デフォルトの名無しさん mailto:sage [2022/07/05(火) 01:05:42.67 ID:jbzqjuV/a.net]
>>912
> 3. xlsm上の別シートに出力結果をVBAで作成
> 4. 出力結果シートを新規ブックにVBAで移動 (ws.move)
新規ブック作ってそこのシートに直接結果を出力した方が楽じゃね?



926 名前:デフォルトの名無しさん mailto:sage [2022/07/05(火) 07:41:15.60 ID:HXH2KDmV0.net]
>>907
VBSを配布して、そこに処理対象ファイルをドラッグドロップしてもらうのが、ユーザ側としては1操作で完結して使いやすいと思う
ユーザに慣れない操作を押し付けて手間を増やしたら本末転倒だしね

ところで「加工」て何するの?
大部分が編集不可の共有ひな型ブックならともかく、人間が好き勝手にいじったブック中から「加工」対象を特定するのは大変だろ

927 名前:デフォルトの名無しさん mailto:sage [2022/07/05(火) 08:39:26.47 ID:ZlAE1xYZd.net]
別にVBSにこだわる必要は無い
Powershell でも良いでしょ

928 名前:デフォルトの名無しさん mailto:sage [2022/07/05(火) 09:04:16.75 ID:MtIzSAoXd.net]
>>915
加工についても恥ずかしながら前スレで相談させてもらって一応解決することができました。
・web上からDL出来る名簿がpdf
・pdfをacrobatでexcel変換するとセル位置や結合が不揃い
・目的は名簿データをそれぞれ横一列のデータにしたい

vbaにて処理は出来るようになったけど、他の人が使いたいという意見があり、今回配布手段についてご相談させてもらった次第です。
https://i.imgur.com/XgHnIpg.png
https://i.imgur.com/cXouZTg.png

929 名前:デフォルトの名無しさん mailto:sage [2022/07/05(火) 09:33:47.87 ID:gxzY68gk0.net]
・WebからDLするドキュメントをCSVにでもしてもらえるよう社内調整する
が一番ラクで確か

930 名前:デフォルトの名無しさん mailto:sage [2022/07/05(火) 11:30:39.29 ID:X6XwWL+o0.net]
最近、Alt+F11でVBEを開くと、アドインのコードが表示されるようになったんだけど、
仕様が変わったのか、表示されるような設定にしてしまったのか。。
皆さんは表示されますか?

931 名前:デフォルトの名無しさん [2022/07/05(火) 11:43:19.49 ID:QxOevurCa.net]
上の人間の指示通りにするので悩まない

932 名前:デフォルトの名無しさん mailto:sage [2022/07/05(火) 11:57:42.97 ID:Fkl5GJtU0.net]
>>919
されますよ。

933 名前:デフォルトの名無しさん mailto:sage [2022/07/05(火) 12:00:27.76 ID:X6XwWL+o0.net]
>>921
毎回アドインのコードが表示されているウィンドウを閉じていますか?
それとも、どこかの設定を変更すると表示されなくなりますか?

934 名前:デフォルトの名無しさん mailto:sage [2022/07/05(火) 12:47:27.21 ID:HXH2KDmV0.net]
>>917
成程。流れ見てないけど、ここにマトモに助けてくれる人がいるというのは意外(失礼w)
acrobatによるpdfのexcel変換過程で色んな気まぐれ要素によりフォーマットが乱れそうな予感がするが、それを吸収するコーディング努力の継続こそスキル上達の早道
頑張って下さい

935 名前:デフォルトの名無しさん (ワッチョイ 73da-XUZM) mailto:sage [2022/07/05(火) 19:57:34 ID:Fkl5GJtU0.net]
>>922
スマン、何かの設定いじったら直った記憶
覚えてなくてすまん



936 名前:デフォルトの名無しさん (ワッチョイ deda-auNL) mailto:sage [2022/07/06(水) 18:47:05 ID:8WsZe39w0.net]
ちんぽじ

937 名前:デフォルトの名無しさん (ワッチョイ 73da-XUZM) mailto:sage [2022/07/06(水) 19:59:54 ID:D5LMB4PC0.net]
2023でるかもね

938 名前:デフォルトの名無しさん mailto:sage [2022/07/06(水) 21:31:49.12 ID:RzEtlOC+0.net]
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てこんな風にデータベタ打ちしか方法がない?

939 名前:デフォルトの名無しさん mailto:sage [2022/07/08(金) 15:51:01.23 ID:vIJsrl8u0.net]
ダウンロードしたVBAマクロ入りファイル、デフォルト無効化が取り消し。MicrosoftがOfficeの仕様を再度変更
https://pc.watch.impress.co.jp/docs/news/1423419.html

940 名前:デフォルトの名無しさん mailto:sage [2022/07/10(日) 15:06:01.33 ID:TbXhrDsy0.net]
えぇ((( ;゚Д゚)))恐い

941 名前:デフォルトの名無しさん mailto:sage [2022/07/10(日) 16:22:28.20 ID:Rxyi1Cuq0.net]
ダウンロードして使うことがないからどっちてもええよ

942 名前:デフォルトの名無しさん mailto:sage [2022/07/11(月) 01:16:29.22 ID:TTL+d6j7a.net]
コロコロ変わるのは昔から
また変更あるぞ

943 名前:デフォルトの名無しさん [2022/07/11(月) 01:40:13.99 ID:vt1vW9IA0.net]
インターネット経由がどうたらというのは、古いマイクロソフトと新しいマイクロソフトの内部抗争にすぎない。

944 名前:デフォルトの名無しさん mailto:sage [2022/07/11(月) 04:21:24.13 ID:/TJLjZUe0.net]
ああゆう最先端の企業でも老害が威張り散らしているのかな

945 名前:デフォルトの名無しさん [2022/07/11(月) 04:31:29.20 ID:vt1vW9IA0.net]
ビルゲイツ派はAzue妨害派だろうな



946 名前:デフォルトの名無しさん mailto:sage [2022/07/11(月) 09:41:27.04 ID:67sTwPgvM.net]
大口の客がゴネたんだろう
VBAがいつまでも使えるのもそういう方々のお陰なのだからVBAer達は感謝しないと

947 名前:デフォルトの名無しさん mailto:sage [2022/07/11(月) 18:14:40.24 ID:/TJLjZUe0.net]
分かったよ

948 名前:デフォルトの名無しさん mailto:sage [2022/07/13(水) 15:11:11.33 ID:cdOR/i1g0.net]
客先から毎日送られてくるpdfに対し、特定の部分だけを抜いてexcelに出すというものを作りたいです

流れとしてはwordで開いてコピペ→そこから必要な部分だけ整形
という流れで考えており概ねできたのですが、pdfをwordに落とした時に文章がそのまま文章でコピーされる時と1行ずつテキストボックスやら画像やらでコピーされる時がありうまく実用化出来ません

上記か、あるいはその他の方法でも良いので安定的にコピーする方法は無いでしょうか?

ちなみにpdfは定型フォーマットに記載された日報のような形式で、手動なら文字はそのままコピペできます、フォーマットはいつも同じですが中の文章は行数が日により異なります

949 名前:デフォルトの名無しさん [2022/07/13(水) 17:04:46.28 ID:+TgcJMJe0.net]
>>937
客先にテキストでもくれと依頼すればいいだろ

950 名前:デフォルトの名無しさん [2022/07/13(水) 17:32:17.47 ID:H0DndFW/a.net]
pdfを書き換えたい訳じゃなくて中身を読みたいだけなら
pdfreaderを使うのが一番楽

951 名前:デフォルトの名無しさん mailto:sage [2022/07/13(水) 18:07:17.76 ID:jvbf7mTW0.net]
PDFは人間のため、印刷のために開発された仕組み
データの順番がどんだけ変わっても人間の目には同じに見えるようになってるから、中身をプログラムで自動的に取り出すのには向いてない

厳密には不可能じゃないとしても、ものすごく大変
できるだけ別の方法を考えた方がいい

952 名前:デフォルトの名無しさん mailto:sage [2022/07/13(水) 18:39:04.67 ID:tqig4XWpd.net]
そのPDFが紙からスキャンしたものじゃなく文字データとして残ってるなら、ワード経由しなくてもacrobatreaderで開いてコピペするのが早いとは思う。

PDFをExcelに変換する手段があるなら、変換してマクロで必要な所を抽出できそうだけど元ファイル次第では難しいか?

953 名前:デフォルトの名無しさん mailto:sage [2022/07/13(水) 19:16:11.37 ID:RAwbutPOM.net]
GOOGLEドライブに入れてドキュメントで開けばOCR使えるからそれを試してみては

954 名前:デフォルトの名無しさん mailto:sage [2022/07/13(水) 19:23:52.41 ID:F58RRgFgM.net]
pdfってhtmlのようなテキストだったりする、意外と知られていない?

955 名前:デフォルトの名無しさん mailto:sage [2022/07/13(水) 19:30:34.74 ID:XpRrYrAX0.net]
>>937
パワークエリ



956 名前:デフォルトの名無しさん (ワッチョイ fdce-TkQT) mailto:sage [2022/07/13(水) 19:51:06 ID:jvbf7mTW0.net]
>>943
中身はテキストなんだけど、データの順番が入れ替わっても同じ見た目の文書が再現できる
だから人間から見て正しい順序で取り出すのが大変
いっぺん出力してOCRした方が早いぐらい

957 名前:デフォルトの名無しさん mailto:sage [2022/07/13(水) 20:29:31.07 ID:RAwbutPOM.net]
>>943
ここの連中にはよく知られている
pdfの解析はめちゃくちゃキツイ

958 名前:デフォルトの名無しさん [2022/07/13(水) 20:29:35.01 ID:+TgcJMJe0.net]
>>943
馬鹿なら黙っていればいいのに
htmlじゃねーよ

959 名前:デフォルトの名無しさん mailto:sage [2022/07/13(水) 20:34:43.23 ID:RAwbutPOM.net]
>>947
「のような」って書いてる
マークアップされてるって事ぐらい分かるでしょ

960 名前:デフォルトの名無しさん [2022/07/13(水) 20:40:59.71 ID:+TgcJMJe0.net]
>>948
マークアップじゃないし
馬鹿は黙っていればいいのに

961 名前:デフォルトの名無しさん mailto:sage [2022/07/13(水) 20:55:32.87 ID:RAwbutPOM.net]
馬鹿じゃねーよ
テキトーに言ってるだけだ

962 名前:デフォルトの名無しさん [2022/07/13(水) 21:36:26.72 ID:bpgpUpce0.net]
バイナリファイルをマークアップされてるって表現する人はじめてみた

963 名前:デフォルトの名無しさん mailto:sage [2022/07/13(水) 22:51:54.33 ID:bvCBiwjA0.net]
とはいっても取引先からのデータは大半がpdfだからなぁ

964 名前:デフォルトの名無しさん mailto:sage [2022/07/13(水) 23:54:44.21 ID:vJ6Ng0OKd.net]
そんなもん会社によるだろ
言えばExcelやCSVで送ってくれるとこも普通にある

965 名前:デフォルトの名無しさん mailto:sage [2022/07/14(木) 00:12:44.49 ID:X42JNt2t0.net]
マーキングするために会社の上司が部下の女に触りまくってるじゃん



966 名前:デフォルトの名無しさん mailto:sage [2022/07/14(木) 07:26:28.96 ID:5ehEa+FTd.net]
技術力だけで生きていくか、コミュ力も高めて生きていくかの「差」が今回の質問で明らかになったね

今回の場合、コミュ力あるやつならとっくに客先はpdfとは別にcsvとかテキストファイルを送る方向で動いてるよ

俺はコミュ力を高めていく
お前らは今後も無理難題をひたすら解決する技術力を高めていけw

967 名前:デフォルトの名無しさん mailto:sage [2022/07/14(木) 08:00:06.43 ID:E22ufzJOM.net]
今回のデータをcsvで頂戴したく存じます

コミュも何も一行メール送るだけでいいだろう
むしろこれ出来ないなら何もできんだろ

968 名前:デフォルトの名無しさん mailto:sage [2022/07/14(木) 08:06:18.41 ID:KsBnasMha.net]
社内規定で社外に送信するデータはPDFとなっておりますので、ご期待に沿えず申し訳ありません。

969 名前:デフォルトの名無しさん mailto:sage [2022/07/14(木) 08:12:38.64 ID:1tikFi/NH.net]
そういうコミュニケーションとれない奴は、
仕様を決めるときにもコミュニケーションとれないから思い込みで作るまである

970 名前:デフォルトの名無しさん mailto:sage [2022/07/14(木) 08:14:11.08 ID:YsqOWTP3d.net]
根本解決を目指すアドバイスはいいけど、どんなデータかも質問者と客先の状況も分からないのに、データ貰えば解決(ドャァは乱暴じゃない?

少なくともwordで開いても文字認識がまばらだったりするって時点で、綺麗な様式から出力したデータじゃないのは確かだし、質問者がそういう回答を求めてないとは思わない?

971 名前:デフォルトの名無しさん mailto:sage [2022/07/14(木) 08:21:48.07 ID:E22ufzJOM.net]
>>959
OCRか元データもらう以外の解決策があるなら、かなり聴きたい

972 名前:デフォルトの名無しさん mailto:sage [2022/07/14(木) 08:24:09.60 ID:lnbsEUJQM.net]
OCRのがマシって回答出てるだろ
現実から目をそらすな

973 名前:デフォルトの名無しさん mailto:sage [2022/07/14(木) 08:49:50.07 ID:vNge93QI0.net]
最初に「CSVなどで依頼しても無理でした」とか書いてくれれば無駄な争いは避けたのかもな

974 名前:デフォルトの名無しさん [2022/07/14(木) 10:19:52.64 ID:dxotV0yqa.net]
>>947
++
>>949
++
>>951
ほんそれ

975 名前:デフォルトの名無しさん [2022/07/14(木) 21:34:12.70 ID:L5ignm6zd.net]
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行程度になります。セル内の単語、単語の数は毎回異なります。

ご教示いただけますと幸いです。よろしくお願いいたします。



976 名前:デフォルトの名無しさん [2022/07/14(木) 21:34:41.90 ID:TfuP8Uyl0.net]
6進数?を通常の時刻表記に直す方法教えてください。
例)1.3→1:30
  2.45→2:45

977 名前:デフォルトの名無しさん mailto:sage [2022/07/14(木) 21:37:17.58 ID:TLlcUFbPa.net]
>>965
A1に時間が入っているとして
=TIME(INT(A1),A1-INT(A1),0)

978 名前:デフォルトの名無しさん mailto:sage [2022/07/14(木) 21:41:07.21 ID:0fmyum11H.net]
>>955
コミュ力の定義はなんですか?典型的なインデックスは何ですか?

979 名前:デフォルトの名無しさん [2022/07/14(木) 21:44:41.57 ID:zzetjp0td.net]
>>964
可能です。
はい、次。

980 名前:964 mailto:sage [2022/07/14(木) 22:56:36.99 ID:X42JNt2t0.net]
>>968
ご回答いただきまして誠にありがとうございます。

981 名前:デフォルトの名無しさん mailto:sage [2022/07/14(木) 23:23:30.65 ID:BkEIWbQgd.net]
>>964
自分ならだけどこんな感じかと Mainのループは最大行数を取得してくれ _をスペースに置き換えてくれ
Sub_Main()
____Dim_i_As_Long
____For_i_=_1

982 名前:_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
[]
[ここ壊れてます]

983 名前:デフォルトの名無しさん mailto:sage [2022/07/14(木) 23:23:50.53 ID:BkEIWbQgd.net]
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

984 名前:デフォルトの名無しさん mailto:sage [2022/07/14(木) 23:43:51.22 ID:qWN4wD1T0.net]
https://mevius.5ch.net/test/read.cgi/bsoft/1654860173/7
に似てる

985 名前:デフォルトの名無しさん mailto:sage [2022/07/14(木) 23:52:28.92 ID:fadaSACN0.net]
気持ちわりぃなそのコード



986 名前:デフォルトの名無しさん mailto:sage [2022/07/15(金) 00:00:11.50 ID:9RgIX2Zba.net]
>>973
どの辺りが?
それとも気持ち悪いって言いたかっただけ?

987 名前:デフォルトの名無しさん mailto:sage [2022/07/15(金) 00:30:48.57 ID:1ECLhEg6a.net]
なんでスペースがアンダーバーなんだとは思うな
俺も見た目が受け付けなかったわ

988 名前:デフォルトの名無しさん [2022/07/15(金) 00:48:33.55 ID:kd+ZBNkRd.net]
いや、そもそも自作自演だろ

989 名前:デフォルトの名無しさん (ワッチョイ fdce-TkQT) mailto:sage [2022/07/15(金) 01:18:26 ID:mFCZ39Ni0.net]
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

990 名前:964 [2022/07/15(金) 02:31:06.28 ID:bSLom3XEd.net]
早速ご回答いただいた皆様、ありがとうございました!
ほぼ思い通りの結果を得ることができました。

ちなみにですが、
例えば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

度々申し訳ございませんが、よろしくお願いいたします。

991 名前:デフォルトの名無しさん [2022/07/15(金) 02:36:26.14 ID:WFW52ORLM.net]
いつものあいつだぞ

992 名前:デフォルトの名無しさん (ワッチョイ fdce-TkQT) mailto:sage [2022/07/15(金) 06:01:47 ID:mFCZ39Ni0.net]
最小限の定義が不明

993 名前:デフォルトの名無しさん mailto:sage [2022/07/15(金) 07:03:30.04 ID:ymO8mssad.net]
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

994 名前:デフォルトの名無しさん (スッププ Sd43-jVDF) mailto:sage [2022/07/15(金) 07:30:27 ID:KClfAjojd.net]
俺のコードをいじってくれてうれしいが
Valueとったり改行いじったりしてるだけで行数減らしてるだけなんて結局マイルールのこだわりを主張してるだけなんだよな
こんな方法あるぜってのが見たいわ

>>978
6が「DOG」になる最小数という意味が不明
先頭の単語を返すだけならCutWordの最後でaとcが同じ値になったらaa(LBound(aa))を返すようにすればいいのでは

995 名前:デフォルトの名無しさん (アウアウウー Sa09-/dRU) mailto:sage [2022/07/15(金) 07:47:41 ID:9RgIX2Zba.net]
value取るのは



996 名前:改悪で草 []
[ここ壊れてます]

997 名前:デフォルトの名無しさん (アウアウウー Sa09-DHlW) mailto:sage [2022/07/15(金) 08:08:12 ID:DqNyEc18a.net]
>>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

998 名前:デフォルトの名無しさん (アウアウウー Sa09-DHlW) mailto:sage [2022/07/15(金) 08:10:06 ID:DqNyEc18a.net]
>>973
気持ち悪いとは思わないけどちょっと非効率かなとは思う

999 名前:デフォルトの名無しさん (ワッチョイ cbda-VQN5) mailto:sage [2022/07/15(金) 08:49:49 ID:pxeFAKZo0.net]
そのコードカッケェ!

1000 名前:デフォルトの名無しさん (スフッ Sd43-TkQT) mailto:sage [2022/07/15(金) 09:42:45 ID:D6klNH8hd.net]
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

1001 名前:デフォルトの名無しさん (アウアウウー Sa09-jVDF) mailto:sage [2022/07/15(金) 09:47:20 ID:kfkt8EAfa.net]
効率どうこう言う前に重複した単語がでるような関数はどうかと思うのw

1002 名前:デフォルトの名無しさん [2022/07/15(金) 13:22:47.81 ID:kd+ZBNkRd.net]
ここでRuby馬鹿がRubyではこうなるとか書くのは見えている

1003 名前:デフォルトの名無しさん mailto:sage [2022/07/15(金) 19:00:37.71 ID:f/pTHFXb0.net]
オレンジ色のオレンジはどうなの?

1004 名前:デフォルトの名無しさん mailto:sage [2022/07/15(金) 19:14:37.65 ID:pxeFAKZo0.net]
どんなに良コード書いても難癖付けられるのがこのスレ

1005 名前:デフォルトの名無しさん mailto:sage [2022/07/16(土) 02:37:29.28 ID:hVvvoOFI0.net]
userformをshowした直後にunloadするとexcelが落ちるのは何とかならんかのぉ
hideじゃだめなんじゃunloadじゃないと



1006 名前:デフォルトの名無しさん [2022/07/16(土) 07:52:34.81 ID:1SMMBEmo0.net]
UserForm1.Show vbModeless
Unload UserForm1

って意味なら、別に落ちなかったけど

1007 名前:デフォルトの名無しさん mailto:sage [2022/07/16(土) 08:52:29.38 ID:eHBMNsDF0.net]
逆になんでhideじゃダメなの

1008 名前:デフォルトの名無しさん mailto:sage [2022/07/16(土) 13:26:34.40 ID:NLVpHfZz0.net]
とりあえずEXCELが落ちるっていうコードと環境出せ
話はそれからだ

1009 名前:デフォルトの名無しさん mailto:sage [2022/07/16(土) 18:00:44.38 ID:2WLM14wy0.net]
>>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

1010 名前:デフォルトの名無しさん mailto:sage [2022/07/16(土) 19:45:04.74 ID:vYu+PcKIa.net]
>>996
廃止決定した言語じゃん

1011 名前:デフォルトの名無しさん mailto:sage [2022/07/17(日) 00:22:00.69 ID:lEW2LcQY0.net]
あんたら色んな言語を習得していてエリートなんだな?
5ちゃんねるなんかにいてもったいねーわ

1012 名前:デフォルトの名無しさん mailto:sage [2022/07/17(日) 02:44:22.32 ID:rPHWMq+g0.net]
>>995
993と同じ、2行だけ
エクセルは2013

>>994
閉じたWebbrowserを再表示する方法がわからないので仕方なく

1013 名前:デフォルトの名無しさん mailto:sage [2022/07/17(日) 04:50:23.78 ID:fLi6s9i70.net]
こいつの書くコード、rubyとしてもクソコードなのがほんとひどい

1014 名前:1001 [Over 1000 Thread.net]
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 77日 2時間 26分 42秒

1015 名前:過去ログ ★ [[過去ログ]]
■ このスレッドは過去ログ倉庫に格納されています








[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<275KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef