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
652 名前:デフォルトの名無しさん mailto:sage [2022/06/24(金) 23:49:49.39 ID:ueFhN9Vh0.net] VBAはコピペして動くからいいよな。 Pythonはだいたい動かない。 しかも、Pythonのページ作るやつて 断片的にソースを乗っけるから、なおさら動かない。
653 名前:デフォルトの名無しさん mailto:sage [2022/06/24(金) 23:54:16.48 ID:WnxbT+0Sr.net] コピペして動かすのって怖くないか? 少ない量ならまだしも100行だと何が起きてもおかしくない
654 名前:デフォルトの名無しさん mailto:sage [2022/06/25(土) 01:09:59.54 ID:XeF3ZBAK0.net] それを修正できるスキルがあれば別かもだけど、なかなかいないのでは
655 名前:デフォルトの名無しさん mailto:sage [2022/06/25(土) 08:29:17.86 ID:hk0FSiYld.net] ネットソースだとwsの指定とか省略されててコピペじゃ怖くて使えたもんじゃない
656 名前:デフォルトの名無しさん mailto:sage [2022/06/25(土) 09:09:54.09 ID:HMw3/wS6H.net] 自分で一から書ける能力があればわざわざコピーなんざしないのさ。。。(-_-) 切り貼りつぎはぎだらけで変数の宣言がぐちゃぐちゃになってる 分かってくれる人いないかな(笑)
657 名前:デフォルトの名無しさん mailto:sage [2022/06/25(土) 09:43:24.30 ID:XeF3ZBAK0.net] 独創でコード書けないと保守で詰むでしょ。
658 名前:デフォルトの名無しさん [2022/06/25(土) 10:00:09.34 ID:kapo/xgia.net] コピペが悪いのではなく、コピペで作ったコードを自分が提供した責任があるのだよ
659 名前:デフォルトの名無しさん mailto:sage [2022/06/25(土) 10:15:11.28 ID:HMw3/wS6H.net] >>649 自分だけで時間短縮のために使ってるマクロだからそんなに困らないよ みんなに配布するレベルはこれからもしないと思う^^
660 名前:デフォルトの名無しさん [2022/06/25(土) 10:49:20.62 ID:Wc9Qs34b0.net] >>648 分かるけど理解はしない それを許したらそこでおしまい
661 名前:デフォルトの名無しさん mailto:sage [2022/06/25(土) 10:54:34.90 ID:PITDVbGU0.net] まあ自分で使うだけならいいんじゃね
662 名前:デフォルトの名無しさん mailto:sage [2022/06/25(土) 12:26:01.77 ID:W4jZJdCLd.net] 書ける能力あっても今までに作ったコードをコピペするだろ? 場合によっては共通関数の入ったモジュール程度を持ってくるにしても お前らもしかして同じこと1から書いてるの?
663 名前:デフォルトの名無しさん mailto:sage [2022/06/25(土) 12:41:36.76 ID:7YC4We+Er.net] 別部署に行って、「規則が変わるからこのマクロも修正してくれ」って言われ、中を見てみたらセレクトメゾットやコピーメゾットが使われてた時の絶望感 「クリップボードの履歴を有効にしていると正常に作動しない事があるから必ず無効にしてくれ」ってそれ書き方おかしくないか? そして変数の宣言が強制されていなくて更に絶望する
664 名前:デフォルトの名無しさん mailto:sage [2022/06/25(土) 12:56:07.50 ID:Fu1pMYi/M.net] >>655 のレベルもたぶん似たようなもんだよ
665 名前:デフォルトの名無しさん mailto:sage [2022/06/25(土) 14:57:17.56 ID:XeF3ZBAK0.net] >>654 と言うより、作って使用したらマクロは消しているのです。 再び必要になったら1から書いてますはい。 職場のローカルルールとして。
666 名前:デフォルトの名無しさん (ワッチョイ 3f7c-PGuA) mailto:sage [2022/06/25(土) 17:13:39 ID:ehcxDoIm0.net] >>657 ないわー 関数自体が使いまわし前提の考え方だし
667 名前:デフォルトの名無しさん mailto:sage [2022/06/25(土) 17:43:12.02 ID:hk0FSiYld.net] >>654 理解しないでコピペするか理解して書いたコードを使い回すかの差は途轍もなく大きい
668 名前:デフォルトの名無しさん mailto:sage [2022/06/25(土) 18:56:11.02 ID:XeF3ZBAK0.net] それどころか回りの奴らはVBAにしろExcelの学習すらやろうとしない。 仕事終わったら飲みに行く事しか考えていない。休日も何も努力しない現実。 興味ないヤツには進めてもダメなのかな
669 名前:デフォルトの名無しさん mailto:sage [2022/06/25(土) 19:21:59.19 ID:WbawSRHfM.net] VBA使いに向上心を求めるのは酷でしょ それがないからこそVBA止まりなのに
670 名前:デフォルトの名無しさん mailto:sage [2022/06/25(土) 21:29:35.48 ID:Ujo38STt0.net] >>660 自分が使うのは勝手にしろだけど、それで優越感に浸って「周りの奴らは~」とかキモすぎだろ たかが仕事で使うの1つのツールごとき にここまでイキれるのはヤバいわ
671 名前:デフォルトの名無しさん mailto:sage [2022/06/25(土) 21:31:08.83 ID:tv1Cabyi0.net] 他はすべて負けてるから何か一つでも勝てるものがほしいんや
672 名前:デフォルトの名無しさん mailto:sage [2022/06/25(土) 21:32:27.25 ID:xn3lQ0RO0.net] レスバで勝てば世界ランクあがるしな
673 名前:デフォルトの名無しさん mailto:sage [2022/06/25(土) 21:44:09.88 ID:VazVwqbS0.net] >>647 それってコピペしただけじゃ動かないってことよね? 動くように自分で指定すると思うんだけど、こわいってのはどういう事なんだぜ?
674 名前:デフォルトの名無しさん mailto:sage [2022/06/25(土) 21:53:20.34 ID:Of9vbGQH0.net] >>663 負けの数ではお前が一番だ
675 名前:デフォルトの名無しさん mailto:sage [2022/06/25(土) 22:26:51.85 ID:XeF3ZBAK0.net] 勝利するかために複雑な知識や技術を身につけているのだが?? 間違ってる?
676 名前:デフォルトの名無しさん mailto:sage [2022/06/25(土) 22:29:13.51 ID:hk0FSiYld.net] >>665 wsを指定しないとActiveSheetで動こうとするから誤作動の原になる
677 名前:デフォルトの名無しさん mailto:sage [2022/06/26(日) 00:40:58.82 ID:NOZ7SEa20.net] Webbrowserで証明書を自動選択する方法は無いものでしょうか?
678 名前:デフォルトの名無しさん mailto:sage [2022/06/26(日) 00:44:34.36 ID:NC1QoP++r.net] >>667 誰に勝利するの? 何に勝利するの?
679 名前:デフォルトの名無しさん [2022/06/26(日) 07:38:11.30 ID:5vPg/0Rp0.net] 他言語やったからって excelやVBAでやったことが無駄になることはないよ 他の言語で作ったもののUTのエビデンスをとるのに excelがもし無ければと思うとゾッとするし テストデータ作成にもVBA使うととっても便利な場合が多いし
680 名前:デフォルトの名無しさん (ワッチョイ 8f63-BYhf) mailto:sage [2022/06/26(日) 09:43:13 ID:/e5N//9v0.net] エクセルのある列に数字が入ってます。 そのエクセルと同じ階層にあるフォルダの下に 上記の数字から始まる名前のフォルダがあります。 (数字のあとに日本語が付いてます) このフォルダの探し方を教えていただきたく
681 名前:デフォルトの名無しさん (ワッチョイ 0f63-BYhf) mailto:sage [2022/06/26(日) 09:45:37 ID:Xa6L6yDT0.net] 会社のパソコンでVBAを使って pdfをテキストへ変換しています。 (com.adobe.acrobat.plain-text) 変換処理は不安定でエラーが出ることが多いが 成功することが多いです。 しかし有料ライセンスは一切買ってもらっていません。 これはライセンス違反ですよね?? 違反ならもうやめます。
682 名前:デフォルトの名無しさん (ブーイモ MM5f-c/Mv) [2022/06/26(日) 09:56:38 ID:IFq6Yt8DM.net] >>672 num=cells(行,列).value dirname=dir(thisworkbook.path&"\"&num&"*",vbDirectory)
683 名前:デフォルトの名無しさん (ブーイモ MM5f-c/Mv) [2022/06/26(日) 09:59:07 ID:IFq6Yt8DM.net] dirname=dir(thisworkbook.path & "\" & num & "*", vbDirectory)
684 名前:デフォルトの名無しさん mailto:sage [2022/06/26(日) 10:18:26.90 ID:6drPPg2U0.net] >>673 PowerQueryでもAdobeのAcrobatなしで pdfをある程度変換出来るけど?
685 名前:デフォルトの名無しさん mailto:sage [2022/06/26(日) 10:25:43.07 ID:yfX3wl/l0.net] >>673 adobeに聞けとしか
686 名前:デフォルトの名無しさん mailto:sage [2022/06/26(日) 11:39:03.04 ID:XMcnD9d40.net] EULA読んでダメって書かれてなきゃいいだろ
687 名前:デフォルトの名無しさん [2022/06/26(日) 12:11:58.60 ID:hFDBYOe90.net] クラスが入ってるCollectionの要素を置き換えるにはどうすればよいでしょうか? Set col(2)=New MyClass() とやってもできないんです。
688 名前:デフォルトの名無しさん mailto:sage [2022/06/26(日) 12:23:08.37 ID:tixRR40Y0.net] 置き換えはダメだからRemoveしてAdd
689 名前:デフォルトの名無しさん [2022/06/26(日) 13:30:17.16 ID:hFDBYOe90.net] >>680 そうですか ありがとうございます でもなぜ置き換えできないのでしょう? そのしくみを理解したいのですが スキルがあがるステップだと思うので
690 名前:デフォルトの名無しさん mailto:sage [2022/06/26(日) 13:35:51.31 ID:VKkh0pnir.net] IEの入力欄に値いれるマクロ使ってたんだけど、エッジに移行して動かなくなったんよ エッジの入力欄いじる方法ってご存知ないですか? 調べてもよくわからなくて
691 名前:デフォルトの名無しさん mailto:sage [2022/06/26(日) 13:39:54.64 ID:PhXCrOZEd.net] VBAを投げ捨ててEdgeの拡張機能を作ろう
692 名前:デフォルトの名無しさん mailto:sage [2022/06/26(日) 14:11:21.83 ID:1bCfGQVkd.net] Sendkeys
693 名前:デフォルトの名無しさん mailto:sage [2022/06/26(日) 15:05:50.62 ID:WjaufMigd.net] まだInternetExplorer.Application は有効でしょ サポートは切れたが動かなくなる訳ない
694 名前:デフォルトの名無しさん [2022/06/26(日) 15:26:20.76 ID:hFDBYOe90.net] なぜMsedge.Applicationにしないの?
695 名前:デフォルトの名無しさん [2022/06/26(日) 15:32:17.63 ID:hFDBYOe90.net] クラス(例:MyClass)が入ってるCollectionの要素(つまりMyClass)をある条件でsortしたいのですが 簡単な方法はないのですよね? これは標準モジュールにそのソート用のsubかfunctionを書くのが一般的ですか? 「ある条件」というのが複数あるので、複数個それを作るのが面倒。 あといま思い付いたけど、そのCollectionをメンバとして含む親クラスをつくり、その親クラスにその複数のsortに相当するfunctionを作るのがカッコイイです?
696 名前:デフォルトの名無しさん mailto:sage [2022/06/26(日) 18:21:23.39 ID:WjaufMigd.net] たぶん用途的にArrayListが良いと思う >>687
697 名前:デフォルトの名無しさん mailto:sage [2022/06/26(日) 21:43:05.30 ID:h799Melv0.net] VBAのマクロ名てなにか制限ある? Sub n98() MsgBox "a" End Sub というマクロを作ったんだが、実行できない。実行ボタンがグレーアウトする。 しかも、マクロボタンを押すとセルカーソルが彼方に飛ばされるんだが
698 名前:B https://i.imgur.com/7iCfenT.mp4 [] [ここ壊れてます]
699 名前:デフォルトの名無しさん mailto:sage [2022/06/26(日) 22:29:47.48 ID:UUS+pyK9H.net] >>689 ワイはそのコードコピペしたらちゃんと動いたよ モジュールのコード上でF5キー押してみたら?
700 名前:デフォルトの名無しさん mailto:sage [2022/06/26(日) 22:31:36.52 ID:UUS+pyK9H.net] マクロ名の制限ももちろんあるよ ググればすぐ出てくるはず だけどこのコードのマクロ名は問題無い
701 名前:デフォルトの名無しさん mailto:sage [2022/06/26(日) 22:39:05.59 ID:h799Melv0.net] >>690 VBEでF5なら動くが、 エクセル本体で開発タブのマクロボタン押すとああなる。 ちなみにバージョンは2013。 マクロ名が英字2字+数字だと、マクロボタン押すとそのアドレスのセルに飛ばされるな。 もちろんマクロは実行できない。 そんな制限あったけ? セルのアドレスて「予約語」になるのか?
702 名前:デフォルトの名無しさん mailto:sage [2022/06/26(日) 23:12:48.18 ID:47IFcp1V0.net] >>689 excel2010だけど全く同じ現象が起こるわ F5からじゃくてAlt+F8な
703 名前:デフォルトの名無しさん mailto:sage [2022/06/26(日) 23:30:30.80 ID:CNfWwh200.net] この画面開いたらn98セルに行って勝手に選択(コピー?)してくれる https://i.imgur.com/8G6jMt0.png 逆に、alt+f8でマクロを開いた状態でセル選択するとテキストボックスに反映されるので、 ここは参照かなにかで連動してるっぽい https://i.imgur.com/cIRhTsz.png
704 名前:デフォルトの名無しさん mailto:sage [2022/06/27(月) 07:11:11.91 ID:KEClHONvr.net] >>694 予約語とかセル番地名、数字始まりは駄目
705 名前:デフォルトの名無しさん mailto:sage [2022/06/27(月) 07:18:40.52 ID:pJh/2YwLH.net] >>695 セル番地もダメだったのか、ウソついてごめんなさい
706 名前:デフォルトの名無しさん mailto:sage [2022/06/27(月) 07:20:43.06 ID:kD2T1aicd.net] セル番地名ってダメだったのか
707 名前:デフォルトの名無しさん [2022/06/27(月) 07:28:39.14 ID:JHJu1s6G0.net] For each i in collection if a=1 then if b=1 then if c=1 then Debug.print "うんこ" end if end if end if next i こんな階層はしないほうがいいですか?もしそうならどうすべきですか? ちなみに実際の条件文はa=1などのように単純ではなくてもっと複雑怪奇で長い文字列です。
708 名前:デフォルトの名無しさん mailto:sage [2022/06/27(月) 07:42:09.30 ID:/YUVVdlZD.net] インデント揃えてれば良いんじゃない? それかある程度深くなったら別ルーチンや関数に飛ばすとか
709 名前:デフォルトの名無しさん mailto:sage [2022/06/27(月) 07:44:02.36 ID:cx09ANOo0.net] if a=1 and b=1 and c=1 にすればすっきり
710 名前:デフォルトの名無しさん (スプッッ Sdbf-tCSL) mailto:sage [2022/06/27(月) 08:00:18 ID:qwmHCu1Hd.net] >>700 VBAはショートサーキットじゃないから遅くなる
711 名前:デフォルトの名無しさん (ワッチョイ 3f01-DrrO) mailto:sage [2022/06/27(月) 08:05:04 ID:3L19Fpz+0.net] >>695 それどこかに書いてある? まあ予約語や数字始まりがダメなのはわかるけどセルアドレスは盲点だわ
712 名前:デフォルトの名無しさん mailto:sage [2022/06/27(月) 09:20:29.88 ID:WYWqaC3Yd.net] >>698 何がしたくてそのIF文を書いてるかわからないけどELSEに対しての記述がなければ>>700 みたいな書き方にしてもいいけど 自分はその程度のネストは許容範囲だけどね それとなんでしないほうがいいと思ったかも書くと他の回答もらえるかもね
713 名前:デフォルトの名無しさん mailto:sage [2022/06/27(月) 09:26:36.50 ID:iDqL/u9w0.net] 年取ると4階層なんかもう見たくない
714 名前:デフォルトの名無しさん mailto:sage [2022/06/27(月) 09:27:26.36 ID:HPVEPi/ad.net] Excel2021でも再現したわ セル番地はモジュール名にできないのか、知らんかった 捨て変数とか作業ファイル名なんか普通にaaa1とか使ってるから、いつひっかかってもおかしくなかったのに 思い返してみると、なぜか捨てSubはtest1とかmacro1にしてた
715 名前:デフォルトの名無しさん mailto:sage [2022/06/27(月) 09:31:15.07 ID:iDqL/u9w0.net] 今わかってる範囲では、モジュール名にできるけど挙動が少しおかしくなる 避けられるなら避けたほうが無難だろうね
716 名前:デフォルトの名無しさん mailto:sage [2022/06/27(月) 09:34:13.54 ID:Kt0Hv+oPd.net] >>692 英字1文字でも3文字でも飛ばされる なんかの裏技に使えそうな気がする 遠くのセル範囲をちょっと確認したいとか
717 名前:デフォルトの名無しさん [2022/06/27(月) 09:36:09.63 ID:kVADuAyl0.net] >>698 いわゆる早期リターンとかガード節ってやつ For Each i In Collection If a <> 1 Then GoTo continue If b <> 1 Then GoTo continue If c = 1 Then Debug.Print "OK" End If continue: Next
718 名前:デフォルトの名無しさん mailto:sage [2022/06/27(月) 09:50:33.84 ID:WYWqaC3Yd.net] >>708 自分としてはもともとの判定を変更するような回答はどうかと思ったりするんだよね 複雑怪奇とかいてるのでわかりやすい回答なら「if not (a = 1) then」にしたほうがいいのではないかと それとそこまで書いたらcの判定もcontinueで飛ばしたほうがすっきりするかと
719 名前:デフォルトの名無しさん mailto:sage [2022/06/27(月) 09:53:16.46 ID:H4LNDdnJ0.net] >>707 マクロじゃなくてジャンプでいいってなるんじゃ
720 名前:デフォルトの名無しさん [2022/06/27(月) 10:00:09.47 ID:Do3p35pda.net] >>698 内容がわかるようにコメントつければいいんじゃね
721 名前:デフォルトの名無しさん mailto:sage [2022/06/27(月) 10:15:26.20 ID:3L19Fpz+0.net] >>705-706 モジュール名にはできないけど>>694 のは手続き名だからモジュール名で修飾(※)すれば呼び出せるよ ※ マクロ名の欄に直接 Module1.n98 のように入力する
722 名前:デフォルトの名無しさん mailto:sage [2022/06/27(月) 10:19:02.79 ID:iDqL/u9w0.net] >>712 スマン、勘違いしてた
723 名前:デフォルトの名無しさん mailto:sage [2022/06/27(月) 10:24:13.47 ID:3L19Fpz+0.net] >>698 一般論としてネストは浅い方が理解しやすいからそのコードであれば>>700 や>>708 みたいにした方が読み易い ただ>>701 が言うようにVBAにはショートサーキット(短絡評価)がないので遅くなるのはいいとしても If N <= UBound(A) And A(N) = 1 Then ... みたいなのは If N <= UBound(A) Then If A(N) = 1 Then ... のようにする必要がある
724 名前:デフォルトの名無しさん [2022/06/27(月) 10:29:53.48 ID:kVADuAyl0.net] まあ、複雑な判定するならメソッドに切り出すのが間違いないわな VBEだとIDEのサポートないから若干めんどくさいけど
725 名前:デフォルトの名無しさん mailto:sage [2022/06/27(月) 11:00:14.42 ID:tRNW+/P90.net] >>698 賛否あると思うが For Each i In Collection: Do If a <> 1 Then Exit Do If b <> 1 Then Exit Do If c <> 1 Then Exit Do Debug.Print "OK" Loop: Next みたいな書き方もある
726 名前:デフォルトの名無しさん mailto:sage [2022/06/27(月) 11:01:13.33 ID:tRNW+/P90.net] 最後の行間違えた Loop Until 1: Next
727 名前:デフォルトの名無しさん mailto:sage [2022/06/27(月) 11:05:37.12 ID:zkyvRAcfa.net] あんまりにもネストするなら、判定文(if複数)だけ別プロシージャ(Function)として外出しして、TrueかFalseを返させるようにするかな IsGoukaku みたいなプロシージャ名にすると何したいかがわかってメンテ楽だし
728 名前:デフォルトの名無しさん mailto:sage [2022/06/27(月) 11:29:16.42 ID:gUdOjGv30.net] セル番地がダメならダメでいいけど、あんな挙動をするのはバグだよ。 本来はメッセージだして弾くべきじゃね? office365でも同じならだれかMSにチクってみてくれ。 以前、MSの掲示板にWinの不具合を書いたら、 速攻で消されたが、 こっちでも確認できたから開発にレポしといたていうメールが来て感動したわ。
729 名前:デフォルトの名無しさん mailto:sage [2022/06/27(月) 11:31:14.56 ID:iDqL/u9w0.net] >>719 365でも同じだよ
730 名前:デフォルトの名無しさん mailto:sage [2022/06/27(月) 11:34:53.87 ID:gUdOjGv30.net] >>700 if a=1 and b=1 and c=1 にすると内部では判断を3回することになる。 if a=1 then if b=1 then if c=1 then にすると判断は少なくなるのだから、ネストするほうが正解じゃね? もちろん、ifを書く順番は判定が少なくするようにする必要はあるが。
731 名前:デフォルトの名無しさん mailto:sage [2022/06/27(月) 11:48:23.44 ID:Fr547gX6r.net] >>719 ゆうてVBAとかアプデすんの?
732 名前:デフォルトの名無しさん mailto:sage [2022/06/27(月) 11:52:04.31 ID:iDqL/u9w0.net] してるよ
733 名前:デフォルトの名無しさん mailto:sage [2022/06/27(月) 11:52:52.11 ID:nfvw1vkN0.net] セキュリティ以外で?
734 名前:デフォルトの名無しさん mailto:sage [2022/06/27(月) 11:57:18.86 ID:iDqL/u9w0.net] うん
735 名前:デフォルトの名無しさん mailto:sage [2022/06/27(月) 11:59:27.42 ID:iDqL/u9w0.net] 頻度はwindoewsやエクセルに比べたらかなり低いけど、やってるよ 確かちょっとずつ便利になってる。本当にちょっとだけ。関数が増えたりはしていないはず。 ソース探したけど見つからねぇ
736 名前:デフォルトの名無しさん mailto:sage [2022/06/27(月) 12:02:08.29 ID:nfvw1vkN0.net] ふーん。。 まあ元号はあったね。。 古臭いよね。。
737 名前:デフォルトの名無しさん mailto:sage [2022/06/27(月) 12:04:52.44 ID:nfvw1vkN0.net] 言語仕様っぽいページはあった https://docs.microsoft.com/en-us/openspecs/microsoft_general_purpose_programming_languages/ms-vbal/d5418146-0bd2-45eb-9c7a-fd9502722c74 結局代替がないからなあ
738 名前:デフォルトの名無しさん mailto:sage [2022/06/27(月) 13:50:25.11 ID:FDoLWwM/d.net] >>718 俺も大体これでやってる
739 名前:デフォルトの名無しさん mailto:sage [2022/06/27(月) 19:05:07.99 ID:IOT9Z53O0.net] >>698 そもそもi使ってねーじゃん
740 名前:デフォルトの名無しさん [2022/06/27(月) 19:57:12.47 ID:UdQiWAN30.net] どなたか教えてください。 売掛金消し込みのマクロを作成しています。VBAでソルバーを自動化したいと思っています。 目的セル、制約条件の参照セルの開始行が40行ごとに下がっていき、指定値は数値ではなく、セルを指定したいです。 とりあえず、全部の変数をvariant型にしてますが、なかなか上手くいきません。
741 名前:デフォルトの名無しさん [2022/06/27(月) 20:18:45.52 ID:UdQiWAN30.net] 731です。 sub ソルバー() dim 振込1 as variant 振込1=worksheets("ソルバー").range("n2:n8") solverok setcell:= worksheets("ソルバー").range("i3"), maxminval:=3, valueof:=振込1, bychange:=worksheets("ソルバー").range("e2:e40"), enginedesc:="grg nonliner" solveradd celreff:=worksheets("ソルバー").range("e2:e40"),relation:=4 solversolve userfinish=true
742 名前:デフォルトの名無しさん mailto:sage [2022/06/27(月) 20:22:23.17 ID:jYXkLZ/o0.net] で、何がうまくいかないの?
743 名前:デフォルトの名無しさん [2022/06/27(月) 20:26:50.30 ID:UdQiWAN30.net] >>733 ソルバーを実行しても、目的セルが0のままで指定値にと一致する金額の組み合わせが見つかりません。 どの請求分の入金なのか、突合したいです。
744 名前:デフォルトの名無しさん mailto:sage [2022/06/27(月) 20:35:36.69 ID:9IVJ+eiIa.net] >>734 ソルバーわからんから確認させてください 振込1って変数は配列に入れた値を指定したいものですか?それともセル自体を指定したいものですか? 前者であればそれでいいですが、後者なら変数はRange型にする上で代入時に Set 振込1 =〇〇 としないといけませんが…
745 名前:デフォルトの名無しさん [2022/06/27(月) 20:37:19.75 ID:UdQiWAN30.net] 連投すみません。 変数宣言して、for〜next構文でe列を("e"&i+40)や、n列も("n"&i+40)みたいにしたいんです。 d列には請求金額、e列は空白、目的セルにはsumproduct関数が入ってます。 指定値セルはn2:n8で、それぞれ違う金額が入力されてます。入金額とn2:n8内の金額が一致する組み合わせの請求金額をVBAを使って、求めたいです。
746 名前:デフォルトの名無しさん [2022/06/27(月) 20:39:44.13 ID:UdQiWAN30.net] >>735 ありがとうございます。 ヘルプを確認したら、指定値はバリアント型で書けとあったので、なんとなくvariantにしていました。
747 名前:デフォルトの名無しさん [2022/06/27(月) 20:45:55.27 ID:qw9z/asOd.net] >>737 マルチ死ね
748 名前:デフォルトの名無しさん mailto:sage [2022/06/27(月) 20:58:49.57 ID:jYXkLZ/o0.net] とりあえず、rangeで回すんじゃなくてcellsで回したら? n列はcells(i,14) e列はcells(i,5)で
749 名前:デフォルトの名無しさん [2022/06/27(月) 21:09:33.28 ID:UdQiWAN30.net] >>739 sub または functionが定義されませんエラーが出ます…
750 名前:デフォルトの名無しさん [2022/06/27(月) 21:10:43.06 ID:UdQiWAN30.net] >>739 cellsも以前試したんですが、上手いこといきませんでした
751 名前:デフォルトの名無しさん [2022/06/27(月) 23:45:06.09 ID:8dHt2RWvM.net] こんな奴が作るプログラムで金勘定とか笑えるわ 己を知らないって馬鹿の特徴なんだよな
752 名前:デフォルトの名無しさん mailto:sage [2022/06/28(火) 00:04:39.14 ID:41/DPGawd.net] ソルバーってカタカナで書くの余計分からないよ 素直にSolverで良いだろうに 上の困ってるのは一旦マクロの記録で動作確認お薦め
753 名前:デフォルトの名無しさん mailto:sage [2022/06/28(火) 00:07:49.75 ID:bUNh/khy0.net] >>742 2行目はよく解る www
754 名前:デフォルトの名無しさん [2022/06/28(火) 05:51:37.94 ID:kKObdKOQ0.net] オレオレ詐欺の手伝い?
755 名前:デフォルトの名無しさん [2022/06/28(火) 07:36:23.45 ID:XbsSoqMza.net] >>736 なんで会計ソフト使わないの?
756 名前:デフォルトの名無しさん mailto:sage [2022/06/28(火) 07:54:25.17 ID:2SIMEAUf0.net] Excelは万能ではないから会計ソフトでやるべき事柄
757 名前:デフォルトの名無しさん mailto:sage [2022/06/28(火) 08:48:25.11 ID:8yuWSL180.net] この世で最高のコードを見かけた With Range("F27:F56") .Value = .Value End With
758 名前:デフォルトの名無しさん [2022/06/28(火) 09:10:04.94 ID:3ZxXgE6I0.net] >>748 それの意味解る? ちょっと前に同じ様なコード載せてた人いたけど 複数範囲は一度に設定できないって嘆いていたよ
759 名前:デフォルトの名無しさん mailto:sage [2022/06/28(火) 09:10:36.27 ID:a//tJk240.net] >>732 solverを使うときのパラメーターの設定の方法が間違ってんじゃない。多分値渡しではなくsetを使うと思うよ。 まずマクロの記録もう使ってなんでもいいからsolverで問題を解いてみて、solverを使うときの正しいVBA の書き方を確認しなさい。
760 名前:デフォルトの名無しさん mailto:sage [2022/06/28(火) 09:52:29.46 ID:qOxYqvDuM.net] >>698 Ifなんたらかんたらを使わないで B2になんか文字が入っていたらC2を B3になんか文字が入っていたらC3を… をスマートに書くならどう書きます? https://i.imgur.com/5VtTNti.jpg
761 名前:デフォルトの名無しさん mailto:sage [2022/06/28(火) 11:02:29.10 ID:1UWi0IGcd.net] >>751 こんな質問してマウントとりたいんだろうか・・・ こんな質問するならそのスマートな回答も書いておけばいいのに
762 名前:デフォルトの名無しさん mailto:sage [2022/06/28(火) 11:15:10.25 ID:cqDrGvOU0.net] VBA使わなくてもセルに関数書いときゃいいんじゃね
763 名前:デフォルトの名無しさん mailto:sage [2022/06/28(火) 12:14:32.96 ID:S7aFTH1NM.net] >>751 お前Access VBAスレにExcelの質問書き込みするんじゃねーよ 迷惑だ
764 名前:デフォルトの名無しさん mailto:sage [2022/06/28(火) 17:20:05.57 ID:mlWlUbMB0.net] すみません、神様達、教えてください エクセルVBAでは 関数内関数はどうやって作れますか? また複数の関数を目的別に整理する方法として パッケージやモジュール単位にまとめたり マップに収納したりはできるのでしょうか?
765 名前:デフォルトの名無しさん mailto:sage [2022/06/28(火) 17:52:33.73 ID:fjXXNeRNM.net] >>755 できる vbeエディタウインドウを凝視しているとやり方が判るはず
766 名前:デフォルトの名無しさん mailto:sage [2022/06/28(火) 17:59:52.62 ID:8yuWSL180.net] >>756 具体的にやり方を教えてあげなよ
767 名前:デフォルトの名無しさん mailto:sage [2022/06/28(火) 18:51:45.14 ID:gpLDnVSMr.net] >>755 関数内関数ってこれのこと? https://www.sejuku.net/blog/28904
768 名前:デフォルトの名無しさん mailto:sage [2022/06/28(火) 19:15:28.84 ID:+0CREnk7H.net] >>756 ちょっと凝視してみます >>758 疑似コードですけど例えば、 Function out() Function in1() End Function Dim a=Function in2() End Function out=Array(in1,a) End Function みたいな感じで 関数outの中に関数in1を宣言したり 変数に関数を代入して、returnしたりしたいのです
769 名前:デフォルトの名無しさん [2022/06/28(火) 19:22:25.73 ID:EFCYXnQm0.net] ローカル関数もサポートされてないし 関数をオブジェクトとして扱えないので変数への代入も無理です
770 名前:デフォルトの名無しさん mailto:sage [2022/06/28(火) 19:22:27.90 ID:+0CREnk7H.net] >>756 標準モジュール単位で関数をまとめればいいってことでしょうか?
771 名前:デフォルトの名無しさん mailto:sage [2022/06/28(火) 19:29:24.91 ID:+0CREnk7H.net] >>760 ありがとうございます なるほどです すっきりしました、神様ありがとう モジュールを使いながら関数を整理するか 関数用にファイルを作って管理するかします
772 名前:デフォルトの名無しさん mailto:sage [2022/06/28(火) 20:14:33.61 ID:a//tJk240.net] >>761 正解です
773 名前:デフォルトの名無しさん mailto:sage [2022/06/28(火) 20:14:53.99 ID:a//tJk240.net] それからモジュールには適当に名前を付けることができますので
774 名前:デフォルトの名無しさん mailto:sage [2022/06/28(火) 20:17:06.37 ID:8yuWSL180.net] 関数内関数ってのは、関数の中で定義する関数のこと phpだと sub foo1 if a = b then sub foo2 foo2=1 end sub else if sub foo2 foo2=2 end sub end sub みたいなことができる あんまやらんけど
775 名前:デフォルトの名無しさん mailto:sage [2022/06/28(火) 20:22:34.06 ID:a//tJk240.net] >>759 関数内関数をそこで書いているようなやり方ではできないけれど、どうしてもやりたければ vbe オブジェクトを定義してそこにコードを書き込むという疑似なやり方はできる。あるいはコードを作成するプロシージャを作成してそのプロシージャを呼び出して引数を渡してコード作った後、そのコードを呼び出すみたいなことはできるのかもしれない。 コードを実行中に別のコードを作成するという経験がないんでエラーが出るかどうかは分からない。 ただ面倒だし見通しも悪くなるんで外側で関数を定義した方が簡単だと思うんだけれどなぜ関数の中で関数を定義したいのでしょうか。
776 名前:デフォルトの名無しさん mailto:sage [2022/06/28(火) 20:32:39.05 ID:+0CREnk7H.net] >>766 ありがとうございます vbaがエクセル前提の言語と考えると 私が考えているような関数は使うべきでもないのだなって思いました 神様たちのアドバイスに感謝です ありがとうございました
777 名前:デフォルトの名無しさん mailto:sage [2022/06/28(火) 20:42:12.06 ID:+0CREnk7H.net] >>765 ありがとうございます
778 名前:デフォルトの名無しさん mailto:sage [2022/06/28(火) 20:50:26.07 ID:+0CREnk7H.net] >>766 なぜ関数の中で関数を定義したいのか すべての関数を同列に記載すると見通しが悪い気がして 例えば数式に関するものなら、calcurationでまとめ 出力に関するものなら、printでまとめ 保存に関するものなら、saveでまとめ っていうように、目的別、機能別、階層別に関数をまとめると 後で見直したときに分かりやすいかなって さらにfacadeみたいに間口を作れば 拡張も修正もしやすいかなって思いまして
779 名前:デフォルトの名無しさん mailto:sage [2022/06/28(火) 20:56:44.33 ID:8yuWSL180.net] >>755 >関数内関数はどうやって作れますか? 関数内関数はない classは貧弱だけど、ある ただvbaそもそもの概念として、エクセルのスクリプトであるという点がある あんまり大きなclass作りたいなら、別言語の方が良いと思う エクセルvbaはゲームとかもキツイ(メインloopが超貧弱でvbaを起動しっぱなしだとよく落ちる) >また複数の関数を目的別に整理する方法として >パッケージやモジュール単位にまとめたり >マップに収納したりはできるのでしょうか? 標準モジュール単位でまとめられるけど・・・ エクセルvbaの標準モジュールは「どのシートにも共通する処理」のような意味合いで用いられる よくも悪くも、vbaはエクセルのためにあるので あまり壮大な事をするのには向いていない
780 名前:デフォルトの名無しさん mailto:sage [2022/06/28(火) 20:59:53.87 ID:+0CREnk7H.net] >>770 class調べてみます! モジュールとclassが使えれば 見やすいコードかけるかも! そんな壮大なプログラムを作るつもりなないのですけど 一処理、一関数にしたいとなると ある程度の単位で処理をまとめていきたいなって ご丁寧なご解説に感謝です ありがとう、神様!
781 名前:デフォルトの名無しさん (ワッチョイ ff02-tQxS) [2022/06/28(火) 21:13:22 ID:i28fB/zi0.net] >>750 アドバイスありがとうございます! 入金消し込みの自動化をせよと上司からの指示で、初心者なりになんとかやってるんですが、会計ソフトの会社でもお手上げな仕組みの売掛金管理のようです。 setとcellsでなんとか、試行錯誤してやってみようと思います! またわからなくなったら、質問させて頂きます。
782 名前:デフォルトの名無しさん (アウアウウー Sad3-/ybv) mailto:sage [2022/06/28(火) 21:26:40 ID:WQvDBuzoa.net] 十年近くぶりに触るし上級者だったとかじゃないけど VBAで 今開いてるPhotoshopの選択しているレイヤーを基準にExcelの指定セル範囲(例:A1からA20)を1セルごとにレイヤーを1枚作りセルの中身を文字ツール(テキスト)でレイヤーを作成。 例:ExcelのA1に「あいう」、A2に「えお」、A3に「123」が入力されていたとし、指定範囲選択(A1〜A3)を、開いてるPhotoshopにレイヤー追加しながらテキストレイヤー「あいう」、「えお」、「123」を作る(計3枚)。その際、Excelに近い見た目の形で…この場合、横に少し間隔を空けて「あいう」「えお」「123」が並ぶように作成する。(文字の大きさや色は直前に使ったpxサイズ、色とする) って出来ますか?
783 名前:デフォルトの名無しさん (ワッチョイ 3f4f-60CD) [2022/06/28(火) 21:45:50 ID:3ZxXgE6I0.net] いや、関数内関数? まぁ似たようなものはあるよ。 GOSUBってのが。 ただ、これも負の遺産のひとつだから あまり使うことはお勧め出来ないけど。
784 名前:デフォルトの名無しさん mailto:sage [2022/06/28(火) 21:52:47.26 ID:/U22FX/80.net] gosubは全然違うでしょ
785 名前:デフォルトの名無しさん mailto:sage [2022/06/28(火) 22:11:43.10 ID:GB8Zx7jKM.net] 関数内関数いわゆる高階関数について、VBA関数には高階関数のための機能は無いけどワークシート関数のLAMBDAが該当する
786 名前:デフォルトの名無しさん mailto:sage [2022/06/28(火) 22:18:47.50 ID:8yuWSL180.net] 確かに!その発想は正解だが・・・だが・・・
787 名前:デフォルトの名無しさん [2022/06/28(火) 23:36:42.40 ID:EFCYXnQm0.net] >>773 COM経由で操作できるっぽい。こんなのが引っかかった https://minatoya.work/419/
788 名前:デフォルトの名無しさん mailto:sage [2022/06/29(水) 07:26:36.96 ID:f9LCV9hba.net] >>776 お前名前に騙されやすいタイプだろw LAMBDA は単なる関数定義で VBA スレ的にはユーザー定義関数と変わらんぞ ユーザー定義関数はマクロブックにしか入れられないから LAMBDA が作られた
789 名前:デフォルトの名無しさん (ワッチョイ 7fda-eqyh) mailto:sage [2022/06/29(水) 08:15:54 ID:SMNkprrA0.net] 他のプログラミングと同じだと思われているのかな LAMBDA 関数は
790 名前:デフォルトの名無しさん mailto:sage [2022/06/29(水) 08:48:09.67 ID:sZpGYWcf0.net] ユーザー定義関数では(コーディング時に)関数を自作することはできるが、(実行中に)関数内で関数を定義したり (実行中の)関数の引数に関数そのものを与えるたりすることはできない そもそもユーザー定義関数とLAMBDA関数はまったく別のもの Excelの新関数「LAMBDA」(ラムダ)が一般提供開始 ~Excel数式が本格的なプログラミング言語に https://forest.watch.impress.co.jp/docs/news/1387035.html
791 名前:デフォルトの名無しさん mailto:sage [2022/06/29(水) 08:51:20.38 ID:GuRBEGnka.net] >>778 ありがとう そこのページ起点に頑張ってみる
792 名前:デフォルトの名無しさん mailto:sage [2022/06/29(水) 08:55:02.95 ID:8rr9zLPCM.net] 関数型パラダイムをサポートしている言語か、最低でもC言語などで関数ポインタを使ったことがある人でないと高階関数の概念は理解が難しい
793 名前:デフォルトの名無しさん [2022/06/29(水) 10:34:47.30 ID:7c8LgVFIa.net] privateで良くないか
794 名前:デフォルトの名無しさん mailto:sage [2022/06/29(水) 12:27:16.10 ID:f9LCV9hba.net] >>781 高階関数の話ならそこに書いてあるMAPとかSCANがLAMBDAを受けられる様になったことを言うべき あと関数内関数と高階関数は全く別物だし実行中に定義できるか
795 名前:かどうかも関係がない [] [ここ壊れてます]
796 名前:デフォルトの名無しさん [2022/06/29(水) 13:48:20.01 ID:Es0nfTu8a.net] 記者がアホなんやで
797 名前:デフォルトの名無しさん mailto:sage [2022/06/29(水) 14:05:01.02 ID:SMNkprrA0.net] ネットの記事って怪しかったり間違っているのが多々あるよね
798 名前:デフォルトの名無しさん mailto:sage [2022/06/29(水) 14:22:16.06 ID:3IrndTU40.net] ネットの記事だけがそうだと思ってる?
799 名前:デフォルトの名無しさん mailto:sage [2022/06/29(水) 14:30:17.44 ID:par7A0IW0.net] はい次の方
800 名前:デフォルトの名無しさん [2022/06/29(水) 14:59:30.13 ID:0RCF24VI0.net] .Netでもひとつの壁と言われているラムダ式が VBAどころかEXCELで使えるようになるのか。 胸熱だが脱落者も増えるだろうな。
801 名前:デフォルトの名無しさん mailto:sage [2022/06/29(水) 15:07:56.16 ID:Ajq9RLSRM.net] 一般的な意味での高階関数は数学的な抽象概念としての話ではあるけど、プログラム言語としては第一級関数の実装のことを言う場合が多い (C言語の関数ポインタのように擬似的に実現する方法もある) 高階関数 https://ja.wikipedia.org/wiki/%E9%AB%98%E9%9A%8E%E9%96%A2%E6%95%B0 第一級関数 https://ja.wikipedia.org/wiki/%E7%AC%AC%E4%B8%80%E7%B4%9A%E9%96%A2%E6%95%B0
802 名前:デフォルトの名無しさん mailto:sage [2022/06/29(水) 15:09:05.56 ID:JurptZkT0.net] 脱落者なんて増えないさ 世の中にエクセルの全機能使いこなしてる奴なんていないからな 理解できない機能は使われないだけだよ
803 名前:デフォルトの名無しさん [2022/06/29(水) 17:35:51.56 ID:0RCF24VI0.net] >>791 読んでてよく分からんかったけど 要はアセンブラでいうところのアドレスの間接参照とか 間接修飾とか言われているやつで .NetではDelegate、VBAではCallByNameによるコールバックって理解でいい?
804 名前:デフォルトの名無しさん mailto:sage [2022/06/29(水) 17:43:32.68 ID:8wQcCZ0gd.net] VBAでできない事をダラダラと話さず別スレいけばいいのに
805 名前:デフォルトの名無しさん mailto:sage [2022/06/29(水) 17:56:17.53 ID:vfJ3sAv3M.net] Excelで例えるなら関数を特定のオブジェクトのメソッドとしてではなく、それ自体を実体のあるオブジェクト(あるいはコレクション)と見做すようなもの 利用側の関数内で関数オブジェクト(のようなもの)を参照する手段として関数そのものをラムダとして扱う
806 名前:デフォルトの名無しさん mailto:sage [2022/06/29(水) 18:54:09.74 ID:zPLPBKg6H.net] エクセルもVBAも詳しくないんですけど VBAは非同期処理でコールバック関数を使わないんですか?
807 名前:デフォルトの名無しさん mailto:sage [2022/06/29(水) 19:06:05.99 ID:tW8kR1cqM.net] イベント駆動型ですから
808 名前:デフォルトの名無しさん mailto:sage [2022/06/29(水) 19:13:20.08 ID:i0xj9Opya.net] >>794 高階関数っていうのを最近覚えたんだろうな 関数内関数に1mmも関係ないのにしつこく語ってる 他の言語スレだと瞬殺されるレベルだからこんなスレで管巻くしか無いんだろうw
809 名前:デフォルトの名無しさん mailto:sage [2022/06/29(水) 19:15:29.13 ID:uu2mw40gD.net] >>796 使おうと思えば使える
810 名前:デフォルトの名無しさん mailto:sage [2022/06/29(水) 21:47:59.24 ID:zPLPBKg6H.net] >>799 コールバック関数を使えるのなら 引数に関数参照できるということです? なら変数に関数を代入できそう
811 名前:デフォルトの名無しさん mailto:sage [2022/06/29(水) 21:55:21.60 ID:zPLPBKg6H.net] >>797 非同期処理はイベント処理に依存してるってことでしょうか? コメントありがとうございました VBA初心者なのでいろいろ勉強していきます
812 名前:デフォルトの名無しさん mailto:sage [2022/06/29(水) 22:13:03.71 ID:sZpGYWcf0.net] >>800 特定のオブジェクトやクラスに所属する関数やAPIなどシステムで定義された関数(メソッド)であればコールバック関数で参照することはできる グローバルのユーザー定義の関数はラムダ式で記述するなどの手段を使わない限りは無理
813 名前:デフォルトの名無しさん (ワッチョイ 4f2f-BYhf) mailto:sage [2022/06/29(水) 22:45:43 ID:JurptZkT0.net] コールバック「関数」とはなにを指してるんだろうかねぇ コールバックを実現する手段はイベント以外に CallByNameとかApplication.Runとかでまあ実現できなくはない
814 名前:デフォルトの名無しさん (JP 0Ha3-tCSL) mailto:sage [2022/06/29(水) 22:55:30 ID:zPLPBKg6H.net] コールバック関数は何を指しているのか なぜラムダ式が存在するのか 即時関数とラムダはどこから分岐していったのか 関数プログラミングは本当に有益なのか 本当に変数は悪者で動的型付けは悪なのか それらはもはや哲学なのかもしれません
815 名前:デフォルトの名無しさん (ワッチョイ ff68-TsA2) mailto:sage [2022/06/29(水) 23:01:15 ID:L0Xzxy470.net] 慣れれば別にどっちでも・・・って感じになるけどな
816 名前:デフォルトの名無しさん mailto:sage [2022/06/29(水) 23:50:10.86 ID:HQQahVZ60.net] >>783 自作の階乗作らせりゃ一発だろ。Cの関数へのポインタとか、可読性0に近い。組んでて楽しいけど、1ヶ月後の自分はこれを理解できるだろうかという疑問が湧くw
817 名前:デフォルトの名無しさん [2022/06/30(木) 05:47:49.15 ID:P7B/AZjs0.net] まぁでもあんまりVBAでコールバック使う機会ないかな 呼び出しや生成元のモジュール側の関数を 呼び出された側や生成された側から呼び出すときに 密結合になるのを避けるためくらいにしか使ってない
818 名前:デフォルトの名無しさん mailto:sage [2022/06/30(木) 07:16:43.81 ID:1TbRNwlJH.net] >>807 エクセルVBAでDBのデータやファイルデータを読み込むとき 非同期にならないように処理するってことなんでしょうか? 例えばフラグを立ててdo-while、breakで処理待ちしてから次の処理に進むとか? webのように処理と表示のタイムラグを気にするようなことがないのかもしれませんね
819 名前:デフォルトの名無しさん mailto:sage [2022/06/30(木) 07:32:44.20 ID:wDIpT9iQ0.net] それすんごい資源食わないか?
820 名前:デフォルトの名無しさん mailto:sage [2022/06/30(木) 07:37:53.64 ID:1TbRNwlJH.net] >>809 vbaはコールバックを使わないということらしいのですが コールバックを使わずに非同期処理する方法があるのでしょうか?
821 名前:デフォルトの名無しさん mailto:sage [2022/06/30(木) 07:47:00.24 ID:NKnrqd7g0.net] ない(もしくはめちゃ面倒だ)から諦めろ 非同期やりたいなら他の言語使え
822 名前:デフォルトの名無しさん mailto:sage [2022/06/30(木) 07:59:35.80 ID:wyi1xEzY0.net] VBA走らせている間に漫画でも読んどけよ
823 名前:デフォルトの名無しさん mailto:sage [2022/06/30(木) 08:04:39.54 ID:1TbRNwlJH.net] え、昨夜のレスでは非同期使えるって言われたので 多言語と同じようにpromise的な処理があるのかと思いました 非同期めちゃくちゃ面倒ってことは エクセル処理で非同期を使うという発想が間違っているのですね なんかいろいろ勘違いしていたみたいでした 神様、先輩方、すみませんでした
824 名前:デフォルトの名無しさん mailto:sage [2022/06/30(木) 08:14:56.75 ID:CdZVH0NpM.net] vbsとか使って外部プロセスに追い出すのが簡単だな で、何を並列処理したいのかな?
825 名前:デフォルトの名無しさん mailto:sage [2022/06/30(木) 09:30:19.73 ID:TLf+rFOod.net] JavaScriptの経験があるなら今更VBAなんかに手を出さなくてもOfficeスクリプト使えばいいでしょ デスクトップでもサポートされたからもうVBAいらないよ
826 名前:デフォルトの名無しさん [2022/06/30(木) 10:09:22.67 ID:P7B/AZjs0.net] >>815 え、マジ? もう企業や教育者向けのじゃなくても開発出来るの?
827 名前:デフォルトの名無しさん mailto:sage [2022/06/30(木) 10:36:29.60 ID:3IHNP7gZd.net] ブック1開いてマクロ実行 待ってる間にブック2開いて手作業 ブック2保存して閉じたら、そのタイミングでブック1のマクロが停止 これって仕様?
828 名前:デフォルトの名無しさん (アウアウウー Sad3-sbT5) [2022/06/30(木) 11:24:18 ID:l3rHcZB/a.net] 排他処理なにそれおいしいの? ファイル保存したらマクロが止まるのは仕様
829 名前:デフォルトの名無しさん mailto:sage [2022/06/30(木) 15:49:46.55 ID:RZ5lqdEjd.net] VBAいじっている間にいつの間にかボタン表面が白くなって userformの背景色や、userformで使われているボタン表面のも同じ白色に変色 まったく新しくファイルを作っても同じ現象が起きる オフィスをインストールし直しても同じ 例外的にいつもの正常なボタンの表面色で表示されるケースがある https://i.imgur.com/t5RFNKa.png この現象が起きる前に作ったファイルのコピーを作る。このコピーを開く。 このとき、セキュリティ警告が出てる間はなぜか正常なボタン表面色 コンテンツ~のボタンを押した瞬間にボタンが白くなる Workbook_Openとかはそもそもない 今のおかしな状態が黒線の左側で、右側がセキュリティ警告が出ている状態 VBEでUserForm自体・ボタン・テキストボックス、これらの背景色BackColorの値は &H8000000F& これって正常な値ですよね? つまり内部的には正常な値なのに表示はいずれも真っ白 windowsやモニタの設定の影響であればセキュリティ警告が出てようが無関係に白色化しているはず 何か原因わかる方いますか? そもそもVBAが関係しているかどうかも分からないのですが。 ちなみに他のエクセルとは無関係のソフトウェアの色は特に変化はないように思います
830 名前:デフォルトの名無しさん mailto:sage [2022/06/30(木) 15:56:36.78 ID:RZ5lqdEjd.net] >>819 ですが、文章ちょっとおかしなところがありました ユーザーフォーム上のボタンも、ワークシートに直接おくボタンも同じように白色になっているということです そもそもボタンだけじゃなくて&H8000000F&で色が表示されている部分は どれもおかしくなっているような状態です
831 名前:デフォルトの名無しさん mailto:sage [2022/06/30(木) 16:27:38.04 ID:CdZVH0NpM.net] たいして白くない件
832 名前:デフォルトの名無しさん mailto:sage [2022/06/30(木) 16:32:48.48 ID:RZ5lqdEjd.net] >>821 真っ白です →は例外的に正常に表示されるケース ←が現状 https://i.imgur.com/3Hy4Ot8.png
833 名前:デフォルトの名無しさん mailto:sage [2022/06/30(木) 17:41:14.60 ID:1+oYjPxt0.net] >>810 非同期と並列処理の区別をつけろよ 非同期=コールバックでもないしな
834 名前:デフォルトの名無しさん mailto:sage [2022/06/30(木) 17:47:02.54 ID:1+oYjPxt0.net] >>819 テーマが適用されてるだけな気がする
835 名前:デフォルトの名無しさん mailto:sage [2022/06/30(木) 18:26:58.93 ID:m1ZMAziu0.net] システムカラーの値 https://docs.microsoft.com/ja-jp/office/vba/language/reference/user-interface-help/system-color-constants
836 名前:デフォルトの名無しさん mailto:sage [2022/06/30(木) 21:06:49.66 ID:1TbRNwlJH.net] >>823 そうですね コールバックがマルチスレッドって言ってるわけでも プロセスを分けるって言ってるわけでもないです 全ての非同期処理は並列処理でもないですし コールバックは処理なので、非同期でもないですし VBAは初めてなのでいろいろ勉強していきます なんか変なこと言っていたらごめんなさい
837 名前:デフォルトの名無しさん (スッップ Sd5f-gXkX) mailto:sage [2022/06/30(木) 22:28:19 ID:SUgmTyTCd.net] 自分はやりたい事の手段の一つにExcelVBAがあるだけでExcelVBAでどこまでできるかってのは気にしてない 別の言語を選択すれば可能ならExcelVBAにこだわることもないしね 勉強するあたりのレベルならExcelVBAだけでなくほかの言語も勉強したほうがいいかもね
838 名前:デフォルトの名無しさん mailto:sage [2022/06/30(木) 23:19:39.52 ID:1TbRNwlJH.net] エクセルの参加人数はすごいと思います 参加人数の多いエクセルをプラットフォームとしてデータ処理できるVBAは 他の言語には見られない参加者人数の価値があります(これを英語で何と言ったか忘れましたが) ハードもプラットフォームも、潜在的な参加者の数で価値を測るという考え方が正しければ エクセルVBAは他の言語をはるかに凌ぐ学習価値があると思うのです 他の言語を学習しつつもVBAも使えるというのは とても素晴らしいことなのだと、VBA初学者としても感じています 先生方、これからもご指導いただける機会がありましたらよろしくです
839 名前:デフォルトの名無しさん [2022/07/01(金) 00:44:30.82 ID:iVoRsqHDd.net] >>828 お前は二度と来なくていいよ
840 名前:デフォルトの名無しさん mailto:sage [2022/07/01(金) 00:49:35.03 ID:T8FFb7IX0.net] >>828 ちょっと何いってるか分からない
841 名前:デフォルトの名無しさん [2022/07/01(金) 01:26:43.65 ID:miA2ycF9M.net] 魔界に転生するとしたら、リザレクの次くらいに持っていたいスキルですもんね。 転生するまでに習得したいと思います。
842 名前:デフォルトの名無しさん mailto:sage [2022/07/01(金) 01:41:24.35 ID:wxGP1WcO0.net] シート上に実行ボタンがあり、いろいろなBookから値を取得してメインのブックに張り付けるマクロがあるのですが、 Windows7+Excel2010とWindows10+Excel2016では、2016方が数倍動作が遅いです(数秒程度が10秒程度になる)。 ただし、時々2010と同程度で終わることがあり、原因がよくわかりません。 なんか、実行ボタンの押し方によって(クリックしてマウスポインタをすぐExcelのウィンドウ外に移動)、 速度が速くなるような気がしているのですが、そのようなことはあるのでしょうか? あるとすれば、なにか対策や原因はあるのでしょうか?
843 名前:デフォルトの名無しさん mailto:sage [2022/07/01(金) 02:14:42.23 ID:u7q4KnhWd.net] >>832 2013あたりからExcelの内部構造が大幅に変わったらしい Windowsも新しいほど重くなってる マウスポインタの位置によって速度が変わるのは多いにあり得る 昔はボタンを押したままにするとアプリの動作が止まってたのが、いつのまにかずっと動き続けるようになったし
844 名前:デフォルトの名無しさん mailto:sage [2022/07/01(金) 06:59:23.11 ID:JTFoUJU2H.net] >>829 DBシステムとしては 操作のバリエーション、検索、演算エンジンともに 最高峰の素晴らしい言語システムなのに 初心者に冷たいコミュニティなのですね >>830 ネットワーク経済性と似た発想の価値測定方法で ソフトやハードの経済価値を推定する思考方法です
845 名前:デフォルトの名無しさん [2022/07/01(金) 07:51:36.56 ID:m7rasyZv0.net] >>834 いやいや、DBシステムとして使うとすると シートにSQL投げようとしたとき インデックス貼れない時点で欠陥品だよ。 EXCELの本分はあくまで表計算。
846 名前:デフォルトの名無しさん mailto:sage [2022/07/01(金) 08:45:57.76 ID:Dqsnfi220.net] >>834 まずDBシステムじゃないし COMから学んではどうか
847 名前:デフォルトの名無しさん (ブーイモ MM4f-2lfq) mailto:sage [2022/07/01(金) 09:01:55 ID:2BH0SskNM.net] 今どき簡易DBアプリはPowerAppsみたいなローコードツールを使えばよい オンライン共有のAccessみたいなアプリがクソ簡単に作れてExcelやスプレッドシートとの連携も容易
848 名前:デフォルトの名無しさん [2022/07/01(金) 11:26:48.78 ID:MWfPFNZsa.net] >>832 気のせいだからほっとけ
849 名前:デフォルトの名無しさん mailto:sage [2022/07/01(金) 11:27:33.06 ID:B1H2Mtvqd.net] 自分としては質問があればそれにこたえるだけでいいと思うが 技術者が他の事にも手を広げるならクソ簡単かもしれないが 一般ユーザーが背伸びしてVBAを理解しようとしてるなら保守なんかも含めてハードル高いと思うんだよね まあ言いたい人は好き勝手に言うだけだから止められないが
850 名前:デフォルトの名無しさん mailto:sage [2022/07/01(金) 11:46:09.70 ID:Kpd5ohp2M.net] 自分としては質問があれば質問するだけでいいと思うが 一般ユーザーが背伸びして回答なんかハードル高いと思うんだよね まあ言いたい人は好き勝手に言うだけだから止められないが
851 名前:デフォルトの名無しさん mailto:sage [2022/07/01(金) 15:15:30.41 ID:Bx5b0a9x0.net] 大事な事だから二度と言うな
852 名前:デフォルトの名無しさん mailto:sage [2022/07/01(金) 15:46:06.01 ID:Ry4wIvAM0.net] どっちだよw
853 名前:デフォルトの名無しさん [2022/07/01(金) 15:50:37.55 ID:E3WEdYada.net] 背伸び?逆やろ 背伸びしようとするタイプはVBAなんて使わない 伸びない香具師がVBAに固執してる
854 名前:デフォルトの名無しさん mailto:sage [2022/07/01(金) 15:51:42.30 ID:S5EpTQdXM.net] 昔 「いいですか?1回しか言いませんからよく聞いてくださいね」 って言われたけど、なんで大事なことなのに1回しか言わないんだろう そんなに大事なら確実に伝わるまで何回でも言うか書いて渡すかすべきだろ
855 名前:デフォルトの名無しさん mailto:sage [2022/07/01(金) 15:56:44.16 ID:wWku/Klda.net] 俺、一回しか教えねーぞ! やるから見て覚えろ盗んで覚えろな! これ、昭和の意地悪い上司。 それが当たり前だった時代
856 名前:デフォルトの名無しさん mailto:sage [2022/07/01(金) 15:57:57.34 ID:Ry4wIvAM0.net] >>844 そうそう アホちゃうの
857 名前:デフォルトの名無しさん mailto:sage [2022/07/01(金) 15:59:37.00 ID:wWku/Klda.net] >>843 めっちゃ分かる 何がなんでもマクロでやっているヤツって何なんだろうね
858 名前:デフォルトの名無しさん mailto:sage [2022/07/01(金) 17:12:32.89 ID:B9UYAOsl0.net] >>844 みたいな考えの奴はたいていちゃんと聞いてないしメモ渡しても無くしたりするしw
859 名前:デフォルトの名無しさん mailto:sage [2022/07/01(金) 17:35:59.70 ID:Ry4wIvAM0.net] >>848 メモ渡すってアホなん
860 名前:デフォルトの名無しさん mailto:sage [2022/07/01(金) 17:57:54.04 ID:Dqsnfi220.net] >>848 そういう奴でも同じ事何回か教えりゃ覚えるから、 分かんなかったらいくらでもまた聞けって言ってる 目的は教育コストの削減とかそいつの成長とかじゃなく仕事の完了な訳だから
861 名前:デフォルトの名無しさん mailto:sage [2022/07/01(金) 18:43:10.74 ID:miA2ycF9M.net] いやこれ、あわしろっていう新手の荒らしですよ。
862 名前:デフォルトの名無しさん mailto:sage [2022/07/01(金) 19:33:27.88 ID:rTaPWcb90.net] 昭和からEXCEL使ってた人いる?
863 名前:デフォルトの名無しさん mailto:sage [2022/07/01(金) 19:34:18.95 ID:B9UYAOsl0.net] >>850 その場限りの相手ならそれが正解だけど>>849 みたいなポンコツは成長しないから今後とも仕事させるならとっとと切り捨てないと結局仕事の完了が遅れるだけ
864 名前:デフォルトの名無しさん [2022/07/01(金) 19:41:46.04 ID:m7rasyZv0.net] >>852 そもそも昭和の時代にEXCELあったっけ? あの頃ってロータス123とか マルチプランの時代じゃないの?
865 名前:デフォルトの名無しさん mailto:sage [2022/07/01(金) 19:42:01.43 ID:Gg+5fIBkM.net] >>853 そういうことを言い出したら極論VBA使いもクビにして優秀なエンジニア雇えという結論にしかならん 雇用維持も企業の責任
866 名前:デフォルトの名無しさん mailto:sage [2022/07/01(金) 19:52:08.13 ID:lB7C8CJv0.net] >>833 複数のブックを別ウインドウで開くようになったからな 個人的にはユーザーフォームが最前面に来ないのがめんどい
867 名前:デフォルトの名無しさん mailto:sage [2022/07/01(金) 19:52:42.66 ID:lB7C8CJv0.net] あと最小化するとユーザーフォームも消えるのが嫌だな
868 名前:デフォルトの名無しさん mailto:sage [2022/07/01(金) 20:32:48.53 ID:B9UYAOsl0.net] >>854 最初の日本語版は1989年(平成元年)リリースだから日本語版を使ってた人は居ないはず 最初のExcelはMac用に1985年(昭和60年)にリリースされてるみたいだからもしかしたら触った人がいるかもしれない
869 名前:デフォルトの名無しさん mailto:sage [2022/07/01(金) 20:38:52.77 ID:B9UYAOsl0.net] >>855 別に辞めさせなくてもポンコツはポンコツで務まるような職場に移せば良いだけだろ
870 名前:デフォルトの名無しさん [2022/07/01(金) 21:05:26.47 ID:0+5KhUlf0.net] vbエディターを開いたときに開いているブックのモジュールやらUFやらがバーっと開くのを止めさせたいんですが、どなたかご存じないですか?毎回重ねて並べて閉じるのがめんどい。
871 名前:デフォルトの名無しさん mailto:sage [2022/07/01(金) 21:10:05.40 ID:CjhzObSj0.net] ラジオボタンがクリック1回で反応しなくて2回マウスでカチカチって指定しないといけないんだけど、直し方わかる人いますか?(´・ω・`)PCの問題なんかな?
872 名前:デフォルトの名無しさん mailto:sage [2022/07/01(金) 21:42:37.97 ID:kFE+Jjo70.net] マルチプランならあるな。 と言っても平成のはじめだけど。 あの時代はPC買うとおまけで違法コピーモノがもらえる時代だからな、 マルチプランも123も両方あったわ。 当時は123のほうが強かったんだよね。 Excelとマルチプランて名前が変わっただけじゃないの?
873 名前:デフォルトの名無しさん mailto:sage [2022/07/02(土) 00:17:07.82 ID:7TC/SMOx0.net] Excel3.0から使っていたら人ならいたよ。 とっくに定年退職されてます。 最近のExcelはごちゃごちゃしていて苦手と言っていたかな。
874 名前:デフォルトの名無しさん [2022/07/02(土) 00:35:50.92 ID:eLIQ72LUM.net] Collectionについての質問なのですが Collectionの要素をソートする場合 それ用のSubを作って、その中でソート後のCollection変数を作ってその中に順番に要素を1つ1つ入れていって最後に set 元のcollection=新collection とやる方法を考えつきました。 この方法で問題ないですか?それとももっとスマートな方法がありますか?
875 名前:デフォルトの名無しさん mailto:sage [2022/07/02(土) 00:50:08.19 ID:vnn63W/20.net] 懐かしいの。 当時 IBM 5550とかいうパソコン使ってた記憶がうっすらある そこでマルチプラン動かしてた ところが海外拠点ではロータス123 の方が評判でどこかでそれに切り替えた記憶がある。同時に IBM 55505何かに変更したような記憶があるな マック使ってたやつが Excel を自慢して確かに羨ましかったな DOS V パソコンで Windows 3.1が動いてその上で Excel が動いた時は感激したな
876 名前:デフォルトの名無しさん mailto:sage [2022/07/02(土) 01:12:48.41 ID:yZ67dQaR0.net] 昭和ならロータス123とアシストカルク使ってたな あれはDOSだったかな?
877 名前:デフォルトの名無しさん mailto:sage [2022/07/02(土) 01:21:18.54 ID:yZ67dQaR0.net] DOSの頃はファイラーはFD、ネットはエアクラフト、お絵描きはkid98、音楽はMIMPIがデファクトスタンダードだった
878 名前:デフォルトの名無しさん mailto:sage [2022/07/02(土) 01:36:45.55 ID:7TC/SMOx0.net] 昔は企業で使うPCソフトといえば表計算と文書ソフトぐらいだったもんね。
879 名前:デフォルトの名無しさん [2022/07/02(土) 06:04:41.51 ID:kG8DYDgz0.net] >>864 良いんじゃない?それで。 用途にもよるけどコレクションにキーくっつけといて 別にキー一覧みたいのをソートして作っといて そのキーからソートした順番に引っ張るっていう方法もあるけど。
880 名前:デフォルトの名無しさん [2022/07/02(土) 06:14:46.63 ID:v1xY47GsM.net] >>869 あれれそうですか。 キーの方法も良さそうですね。 でもこんなひとはよく使用しそうなのに話が盛り上がらないのは みんなのVBAのスキルが低レベルだからでしょうか?
881 名前:デフォルトの名無しさん [2022/07/02(土) 06:15:13.26 ID:v1xY47GsM.net] x こんなひと o こんなこと
882 名前:デフォルトの名無しさん mailto:sage [2022/07/02(土) 06:29:09.78 ID:BdV6t7uW0.net] すげーな、普通の人が寝る夜中に盛り上がらないからって他人を低レベル呼ばわり
883 名前:デフォルトの名無しさん mailto:sage [2022/07/02(土) 06:35:31.84 ID:yZ67dQaR0.net] >>870 かまってもらえないからみんなまとめて低レベル扱いですかそうですか くさっ
884 名前:デフォルトの名無しさん [2022/07/02(土) 06:52:10.92 ID:kG8DYDgz0.net] >>870 なるほど、ただの煽りかも知れないけど あまり人前でそう言うことは言わない方がいい。 人を嫌な気分にさせるし 自惚れ屋と思われて周りからも疎まれることになる。 自分の為にも思ったことは口にしたり書き込んだりする前に一度考えてから実行する方が良いよ。
885 名前:デフォルトの名無しさん [2022/07/02(土) 07:31:29.49 ID:LyZZMtStD.net] >>870 当たり前の処理のどこに盛り上がる要素があると思うのか そもそもソートが必要なものにcollection(リスト)使おうって時点で データ構造の選択を間違ってる可能性が大きい
886 名前:デフォルトの名無しさん [2022/07/02(土) 07:35:58.08 ID:+UfCFyJWM.net] わかった じゃあいい
887 名前:デフォルトの名無しさん mailto:sage [2022/07/02(土) 07:38:04.43 ID:Vi0lNJ4o0.net] 釣られすぎ
888 名前:デフォルトの名無しさん [2022/07/02(土) 07:40:07.80 ID:+UfCFyJWM.net] For-Next文の中だけで使う局所ローカル変数を定義する場合は そのFor-Nextブロック内で Dim a as String でいいんですっけ? それともモジュールの先頭で? たしかVBAでは局所ローカル変数の概念がなくて Sub/Function内すべての場所で使える気がするのだけど。
889 名前:デフォルトの名無しさん [2022/07/02(土) 07:49:38.67 ID:kG8DYDgz0.net] >>878 局所ローカルという呼び方をするのかは兎も角 関数やメソッド以下のスコープ変数は基本的には設定出来ない。 変数宣言をする場所についてはVBAに限らず そのスコープが始まる頭のところに書くのが一般的だよね。 ただ、言ってる通り別に先頭に書かなくても問題なく実装は出来る。
890 名前:デフォルトの名無しさん [2022/07/02(土) 07:49:48.13 ID:vz70zrJPM.net] >>870 盛り上がったじゃないか 良かったな
891 名前:デフォルトの名無しさん mailto:sage [2022/07/02(土) 07:49:50.15 ID:LyZZMtStD.net] >>878 言うとおり局所ローカル変数は存在しないのでFunctionやSubの中ならどこでもいいよ モジュール先頭(Function、Subの外側)だとグローバル変数かパブリック変数になるからその目的ならダメ
892 名前:デフォルトの名無しさん [2022/07/02(土) 07:58:43.11 ID:+UfCFyJWM.net] >>879 >>881 なるほどありがとうございます。 やっぱりできないのですね。 でもSub/Function先頭に書くと可読性が著しく下がる(この意味が分からない人はスキル低すぎ)のでやめときます。 われわれのように複雑なプログラミングをしてる人にとってはVBAの言語はいろいろ不便に感じますね。
893 名前:デフォルトの名無しさん [2022/07/02(土) 08:01:20.13 ID:kG8DYDgz0.net] >>882 だからそう言った言い方はやめた方がよいかと。 モロに自分が「単一責任原則も知らずにスパゲッティコード組みます」と言ってるようなものだから。
894 名前:デフォルトの名無しさん mailto:sage [2022/07/02(土) 08:27:22.57 ID:bQuvSXdqD.net] >>882 COBOL書いたら死んでしまいそうな人
895 名前:デフォルトの名無しさん mailto:sage [2022/07/02(土) 09:00:40.59 ID:At3W7bIA0.net] >>878 まあ好みだけど俺は変数宣言は可能な限り使う直前って決めてるからそのケースならループ内で宣言する
896 名前:デフォルトの名無しさん (ワッチョイ 0a63-63P4) mailto:sage [2022/07/02(土) 09:30:40 ID:6d3aqhyk0.net] チゲ鍋みたいだな局所ローカル
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 名前:過去ログ ★ [[過去ログ]] ■ このスレッドは過去ログ倉庫に格納されています