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
2 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 10:10:19.02 ID:Pk0oKD+E0.net] 2げろ
3 名前:デフォルトの名無しさん [2022/05/01(日) 14:46:30.73 ID:q0kLnjNbd.net] Excel使い方すらわからない人はお断りです Excel VBAが何かもわからない人もお断りです
4 名前:デフォルトの名無しさん (ブーイモ MMcb-LnX+) [2022/05/01(日) 16:08:24 ID:CXxh8/QkM.net] 我々の承認欲求を満たしてくれる質問お待ちしてます
5 名前:デフォルトの名無しさん (ワッチョイ df4f-bbcD) [2022/05/01(日) 17:04:11 ID:PgWgEC/y0.net] 向こうのスレ消化してから書き込めカス共
6 名前:デフォルトの名無しさん (ワッチョイ 7fda-Nh0L) mailto:sage [2022/05/01(日) 19:54:56 ID:Om3L9uk+0.net] 前スレ終わってないのに立てる >>1 が悪い
7 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 21:27:37.77 ID:geOevaoi0.net] >>6 終わってから立てたらスレの連続性が途絶えるだろ 考えて物言え知恵足らずが
8 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 21:39:32.49 ID:Rd1MW2220.net] レス古事記の相手すんなよ...
9 名前:デフォルトの名無しさん (ワッチョイ 27da-l/ZD) mailto:sage [2022/05/02(月) 19:28:34 ID:MoQSVCv50.net] 過去にもしばらくスレ立て放置プレイされた事あったぜ
10 名前:デフォルトの名無しさん mailto:sage [2022/05/02(月) 23:18:57.97 ID:X95f3WhM0.net] よろしくお願いします。以下の日本語で書いた部分に相当するような 繰り返し文ってありますでしょうか。 イメージしているのはwhile read line do done < test.txt みたいなものです。 テキストファイルの変わりに「とある列の値が尽きるまで(空欄が見つかるまで)」、 繰り返し文内の処理を繰り返すような文です。 Range("B1").Select 繰り返し A列の値 = 空欄のセルが見つかるまで ActiveCell.Offset(0, -1).Range("A1").Select Selection.Copy ActiveCell.Offset(0, 1).Range("A1").Select ActiveSheet.Paste ActiveCell.Offset(1, 0).Range("A1").Select 繰り返し完了
11 名前:デフォルトの名無しさん mailto:sage [2022/05/02(月) 23:38:34.90 ID:hdDLukhc0.net] >>10 すげーざっくりだけどやりたいことはこんな感じ? やりたいことがあってるならもう少しちゃんとしたコードにはするけど SelectとかCopy、Pasteは基本VBAで使わないので Dim WS As WorkSheet Set WS=ActiveSheet Dim RngA1 As Range Set RngA1=WS.Cells(1,1) Dim i As Long For i = 1 to 16384 If WS.Cells(i,1).Value="" Then Exit For Else WS.Cells(i, 1).Value=WS.Cells(i, 2).Value End If Next
12 名前:デフォルトの名無しさん [2022/05/03(火) 10:09:18.61 ID:F3b8ltuB0.net] 先生方教えて! エクセルを1枚1枚開いてvbaによって加工したい場合、 マクロの表示からそのvbaを選ぶのが一般的なんでしょうか。 FileDialogをつかって複数エクセルを一気に加工するほうが 自分は楽なんですが契約社員にはわかりづらいそうで。。
13 名前:デフォルトの名無しさん [2022/05/03(火) 10:15:31.86 ID:MA4dMZuw0.net] 一般的かどうかは分からんけど ファイルダイアログを開いて 設定したパスをどこかのセルに設定しておいて 実行ボタンでそのセルを読みに行くほうが 複数のブックを読みに行く場合には親切
14 名前:デフォルトの名無しさん [2022/05/03(火) 13:25:25.46 ID:xaGln49G0.net] 理解が十分でない契約社員には直感的にわかりやすい上記の方法 そのうち慣れて面倒になってきたら下記の方法(バッチ) 2つのアプローチを用意するのがいいかもしれませんね コンピュータになれていなかったり入れ替わりが多い契約社員というところがポイントですね 私もVBAを他人に提供することが多いから参考になるわー
15 名前:デフォルトの名無しさん mailto:sage [2022/05/03(火) 13:57:26.99 ID:nOtJseDM0.net] Nextじゃなくて、Next iって書かなきゃあかんと言われたよ
16 名前:デフォルトの名無しさん [2022/05/03(火) 14:12:22.20 ID:utR4VoxQa.net] iが足りなかったからか
17 名前:デフォルトの名無しさん mailto:sage [2022/05/04(水) 14:54:21.99 ID:Bmz10qTz0.net] 前スレ987で質問した者です。 アドバイスありがとうございます。 2019に変わる際にPCがwin7からwin10に変わり性能もアップしたのでVBA処理も早くなるかと思っていたのですがそのようなバグが出るようになりました。 自分1人で使ってる範囲では良いのですが複数が利用しているため質問させて頂きました。 PC性能があがりEXCELがついてこれてない可能性もありますね。
18 名前:デフォルトの名無しさん mailto:sage [2022/05/04(水) 16:13:00.23 ID:waxP/JpN0.net] Excel板なら人間の性能を上げろって揶揄されるからな
19 名前:デフォルトの名無しさん mailto:sage [2022/05/04(水) 19:42:48.21 ID:3VW2nuLk0.net] win7がwin10になったのとPCの性能は別だからな 古いPCのOSだけ変えたのかもしれんし
20 名前:デフォルトの名無しさん mailto:sage [2022/05/04(水) 20:57:36.39 ID:Bmz10qTz0.net] 説明不足で申し訳ないです。 win7からwin10でPC変わってます。 個人的に所有しているPCではないので具体的なスペックはわかりません。
21 名前:デフォルトの名無しさん mailto:sage [2022/05/04(水) 21:05:48.55 ID:hxvZ+FeqM.net] >>20 所有権の問題ではなく馬鹿だからわからないだけでは?
22 名前:デフォルトの名無しさん mailto:sage [2022/05/04(水) 21:14:48.05 ID:Bmz10qTz0.net] 申し訳ありません、具体的なスペックが提示できないようではアドバイスも難しいですもんね。 これまで頂いたアドバイスでもう少し試行錯誤してみたいと思います。ありがとうございました。
23 名前:デフォルトの名無しさん mailto:sage [2022/05/04(水) 22:17:07.14 ID:hNQ/TBre0.net] 数秒待たせればエラーに成らないなら、原因判明するまでは待たせる方式で 或いは 最終的に鳥瞰図が欲しいなら、数値データをDXFとして出力してjw-cadとかで描画とか https://www.hakko.co.jp/javascript/soft011.htm 作者に問い合わせしながら検討とかも https://www.apptec.co.jp/technical_report/pdf/vol24/treport_vol_24-06.pdf https://movies.woxikon.co.nz/excel-%E3%81%A7-cad-%E5%9B%B3%E9%9D%A2-%E4%BD%9C%E6%88%90 https://www.tipsfound.com/excel/05038 https://www.nichibun-g.co.jp/data/education/ict-education/archive/31/02.php この辺は既にご承知かも ぜんぶちゃんと目を通した訳では無いから抜粋ということで グラフ機能を応用して鳥瞰図(風)にしてるってことかな
24 名前:デフォルトの名無しさん (ワッチョイ 2701-XZ6m) mailto:sage [2022/05/04(水) 23:12:41 ID:Bmz10qTz0.net] >>23 ありがとうございます。勉強になります。 今のところはエラーが出た際バッファーの時間を調整して対応しています。 とりあえずは動いているので良いのですが書き方としてどうなのだろうと思いまして… もっとスマートに解決方法があればと思い質問させて頂きました。 アドバイス頂きありがとうございます。アドバイスを元に検討してみたいと思います。
25 名前:デフォルトの名無しさん [2022/05/04(水) 23:54:17.61 ID:4EN2kx2R0.net] >>24 むかしファイルメーカーから画像を取り出してExcelに貼り付けるマクロ書いたことあるわ。 クリップボードからExcelに貼るときにちょいちょいエラーが出て苦労した。 最終的にはエラーが出たところからリランできるようにして人力で最後まで走り切った。 継続的に長い期間使うマクロではなかったんでね。 クリップボードって入れ終わるタイミングが掴めないから処理が難しいね。 オレが調べた限りでは完全に技術的に解決する方法は見つけられなかった。 完全自動化は一旦棚に上げておいて、人間の補助も込みで運用を考えた方が現実的かも。
26 名前:デフォルトの名無しさん mailto:sage [2022/05/05(木) 00:43:02.91 ID:vV+xUHQR0.net] IEとセッション共有するにはどうすればいい?
27 名前:デフォルトの名無しさん mailto:sage [2022/05/05(木) 08:37:44.29 ID:GOdKeYkud.net] >>12 VBSでExcelファイルをドラッグドロップお薦め Visible = False でExcel画面すら見ずに処理が終わる
28 名前:デフォルトの名無しさん [2022/05/05(木) 09:37:07.07 ID:yaYLZP+d0.net] >>26 まずIEはセッションなど持っていない。 そして今IE は使えないだろう? 強制的にEdgeにされるはずだ。 そしてそのEdge も当然セッションなど持っていない。 EdgeもIEもクライアントサイドのものだからだ。 セッションはサーバーサイドの概念だからな。 そしてサーバーサイドをEXCELのVBA で制御するとか意味分からん。 大人しくAsp.NetでもやっておくかせめてVBS で制御しとけ。
29 名前:デフォルトの名無しさん mailto:sage [2022/05/05(木) 11:18:53.52 ID:vV+xUHQR0.net] わざとだろうけど、EdgeでもCookieでもいいよ。
30 名前:デフォルトの名無しさん mailto:sage [2022/05/05(木) 11:27:47.75 ID:BSjK1PJD0.net] >>11 ありがとうございます。
31 名前:デフォルトの名無しさん mailto:sage [2022/05/05(木) 16:06:00.40 ID:FeY8iOM40.net] 【ひろゆき】テレビ見る奴はバカ!?正論論破! 「テレビ見てる奴バカすぎだろ!!マジでバカしかいない!!」聞けば納得の正論!! 【ひろゆき】みなさん要注意です…テレビ見ると頭悪くなります ⇒テレビが馬鹿向けに作られてる衝撃の理由がヤバ過ぎる… 【ひろゆき】マジで「ざまあみろ」って思いましたね。 ●●する奴にテレビ業界は破壊されました…ひろゆきがテレビがオワコン化した理由を話す 【ひろゆき】芸能界の闇!松本人志とか東野幸治はエクセルすら使えないんだよ? ワイドナショーで言ってたw【教えて!ひろゆき先生/切り抜き】 【ひろゆき】なぜテレビは面白くなくなったのか? その理由をひろゆきとひげおやじが分析する【切り抜き/論破/TV】
32 名前:デフォルトの名無しさん mailto:sage [2022/05/07(土) 10:41:14.26 ID:NJT6jW780.net] Sub test() Dim high As Long Dim str As String Dim num As Integer 'a str = "転" str = Asc(str) str = Hex(str) a = str 'b str = "転" str = Hex(Asc(str)) b = str 'c str = "転" num = Asc(str) str = Hex(num) c = str End Sub a=FFFFFFFFFFFF935D b =935D c=935D aとbで結果が異なる理由が分かりません。 cはぼんやりと型の違いなのかと思いテストしたところ、bと同じ結果になりました。 しかし、aもbもstring型のstrに納めているので、「どうして結果が違うのか」とより 謎を強めてしまいました。なぜ、aとbで結果が異なるのか教えてください。
33 名前:デフォルトの名無しさん [2022/05/07(土) 11:01:22.01 ID:QtF4T6fHa.net] ascの結果をstringに変換しないで入れたからかな 出先なので試せないが
34 名前:デフォルトの名無しさん (アウアウウー Sa1f-cwrN) mailto:sage [2022/05/07(土) 11:52:42 ID:/qcwjpRWa.net] 'a str = "転" str = Asc(str) Debug.Print str str = Hex(str) Debug.Print str a = str ってやってみて自分の思った通りになってるか確認してみそ
35 名前:デフォルトの名無しさん (ワッチョイ b7ce-PvPk) mailto:sage [2022/05/07(土) 11:59:35 ID:WpJq4eDb0.net] >>32 Asc関数は戻り値が数値型なので、bとcはほぼ同等になる aだけが途中経過が明らかに違う
36 名前:デフォルトの名無しさん (ワッチョイ b7ce-PvPk) mailto:sage [2022/05/07(土) 12:05:46 ID:WpJq4eDb0.net] 公式ドキュメントには、Hex関数の返り値は8桁以下の文字列と書いてあるのに16桁返ってくるな どういうことだ? https://docs.microsoft.com/en-us/office/vba/language/reference/user-interface-help/hex-function
37 名前:デフォルトの名無しさん mailto:sage [2022/05/07(土) 12:10:46.75 ID:WpJq4eDb0.net] 暗黙の型変換は必要最小限の型に変換されるってルールだったはずで、そのロジックに何か問題がある気がする 文字コード(-27811)はIntegerになるはずがLongLongに変換されてしまっていて、さらにHex関数がなぜかエラーを返さない
38 名前:デフォルトの名無しさん mailto:sage [2022/05/07(土) 13:00:38.34 ID:WpJq4eDb0.net] うーん、これはちょっと想定外の結果、かなあ 知らないでいるとハマりそうだわ Sub test2() s = "&H8" For i = 1 To 15 s = s & "0" Debug.Print Hex(s) Next End Sub
39 名前:デフォルトの名無しさん mailto:sage [2022/05/07(土) 15:18:31.97 ID:QipuKWLV0.net] >>32 strは文字列型だからaの場合str = Asc("転")でやっていることは実質的にstr = cstr(Asc("転")). だからa,b,cはそれぞれ,hex(cstr(Asc("転"))),hex(Asc("転")),hex(Asc"転"))となりaだけ途中で数字ではなくて文字列にかわっているので 対応するhexの値が異なるのは当然.
40 名前:デフォルトの名無しさん [2022/05/07(土) 15:39:23.00 ID:Be/sY8NCd.net] 型を意識しないで作るVBAerによくある勘違いというだけ
41 名前:デフォルトの名無しさん [2022/05/07(土) 16:06:22.67 ID:7L5Eu3N/a.net] >>38 型宣言しないタイプ?
42 名前:デフォルトの名無しさん mailto:sage [2022/05/07(土) 17:29:10.04 ID:stouWQDp0.net] VBAってマトモな会社は使用禁止でしょ
43 名前:デフォルトの名無しさん mailto:sage [2022/05/07(土) 19:21:47.63 ID:WpJq4eDb0.net] >>41 >>38 のケースは宣言してもしなくても結果同じでは
44 名前:デフォルトの名無しさん mailto:sage [2022/05/07(土) 19:23:32.20 ID:WpJq4eDb0.net] >>39-40 公式ドキュメントに8文字以下と書いてあるのに、たまに16文字返ってくるのは単なる勘違いで済む問題じゃないと思うぞ
45 名前:デフォルトの名無しさん mailto:sage [2022/05/07(土) 20:33:59.56 ID:gH0nu0qIa.net] >>44 64bit 版のドキュメントが間に合ってないだけだろ
46 名前:デフォルトの名無しさん (ワッチョイ 17da-oDvp) mailto:sage [2022/05/07(土) 21:40:19 ID:QipuKWLV0.net] >>44 実際の結果と説明が食い違ってたら説明の方が間違っている(修正が遅れている)だけだと思うが
47 名前:デフォルトの名無しさん (ワッチョイ b7ce-PvPk) mailto:sage [2022/05/07(土) 21:55:14 ID:WpJq4eDb0.net] Officeが完全64bit対応になったのは2010から 12年遅れか……
48 名前:デフォルトの名無しさん (アウアウウー Sa1f-cwrN) mailto:sage [2022/05/07(土) 22:11:45 ID:9QKKUGlra.net] >>46 まあ単なるバグの可能性は "0" ではないけど
49 名前:デフォルトの名無しさん (ワッチョイ 8f68-e+q+) mailto:sage [2022/05/07(土) 22:14:36 ID:T2FkQFbN0.net] >>38 これはバグでは
50 名前:デフォルトの名無しさん mailto:sage [2022/05/07(土) 22:18:37.86 ID:cppQitqZ0.net] >>47 64bitが標準になったのは2019からだけど
51 名前:32 (ワッチョイ 9f02-PvPk) mailto:sage [2022/05/08(日) 08:41:56 ID:mrWBx7yB0.net] Sub test() Dim high As Long Dim str As String Dim num As Integer 'a str = "転" str = Asc(str) str = Hex(str) a = str 'a´ str = "転" str = Asc(str) str = Hex(CInt(str)) ad = str 'b str = "転" str = Hex(Asc(str)) str = str b = str 'c str = "転" num = Asc(str) str = Hex(num) c = str ありがとうございます。一旦は納得できました。
52 名前:デフォルトの名無しさん mailto:sage [2022/05/08(日) 19:44:09.25 ID:J4Oeet0G0.net] kou 'a str = "転" long_ = Asc(str)
53 名前:デフォルトの名無しさん mailto:sage [2022/05/08(日) 22:42:32.67 ID:CUGu1qGH0.net] high は何のため
54 名前:デフォルトの名無しさん (ワッチョイ 2f2f-vjB4) mailto:sage [2022/05/09(月) 03:05:49 ID:1tzp5qwq0.net] >>37 >暗黙の型変換は必要最小限の型に変換されるってルール そんなルール聞いたことないが、どこ情報なんだ?
55 名前:デフォルトの名無しさん mailto:sage [2022/05/09(月) 14:49:08.99 ID:Ww9cdHsy0.net] 脳内思い込み 一番タチ悪い
56 名前:デフォルトの名無しさん (ワッチョイ 3ebb-HNGk) mailto:sage [2022/05/09(月) 18:18:14 ID:7ATo4dDz0.net] コピー元のブックのシート上のチェックボックス
57 名前:(ON/OFF)を、 コピー先のブックのシート上のチェックボックス(すべてOFF)に 「チェックボックスのON/OFFの状態を」コピーしたいのですが そういう命令はありますでしょうか? [コピー元].Worksheets("シート名").Range("G3:AB5").Copy [コピー先].Worksheets("シート名").Range("G3:AB5").PasteSpecial xlPasteAll ではチェックボックスは空白のままなのですが、 「マウスでコピー元のG3:AB5を選ぶ→Ctrl+C→コピー先にCtrl+V」と手動で操作すると G3:AB5内のチェックボックスのON/OFFもコピーされるので なにか方法があるのではと思うのですが すべてをペースト(PasteSpecial xlPasteAll)ではダメなのでしょうか [] [ここ壊れてます]
58 名前:デフォルトの名無しさん mailto:sage [2022/05/10(火) 10:07:55.18 ID:4FhYKkQU0.net] ユーザーフォームのコントロールの位置調整について質問です。 テキストボックスA,B,Cが A B C と既に左右の間隔が均等に整列された状態になっており、 一番左にテキストボックスDを追加するとします。 D A B C この時、A-B間(B-C間も同じ) と D-A間の間隔を同じにしたい場合、 手動計算する(それぞれのLeftプロパティを参照して、差分を手入力する)のではなく、お手軽に設定できる操作はありますか? マウスのドラッグで D A B C を範囲選択して[書式]-[左右の間隔]-[間隔を均等にする]を選ぶと、 両端(DとC)の位置が固定された上で、その内側(D-A間、A-B間、B-C間)が均等になるだけで、 今回求めている結果にはなりませんでした。
59 名前:デフォルトの名無しさん mailto:sage [2022/05/10(火) 10:19:04.03 ID:ODIjuWluM.net] 一生に一度しか使用しない機能は実装されません
60 名前:デフォルトの名無しさん mailto:sage [2022/05/10(火) 10:49:36.48 ID:G5I31YZG0.net] D A B C を左右均等に並べたいんじゃ無いのか? D-A-B-C とか、スペースを-で表さないと、コッチからすれば説明文の上下は一緒に読めるんだが? D---A-B-C とかか?
61 名前:57 mailto:sage [2022/05/10(火) 11:44:31.14 ID:4FhYKkQU0.net] >>59 スペースをハイフンで示します。 最初の状態 A----B----C Aの左側にDを追加するとします。 D-A----B----C マウスのドラッグで DABC を範囲選択して[書式]-[左右の間隔]-[間隔を均等にする]を選んだ場合は、 両端(DとC)の位置が固定された上で、その内側(D-A間、A-B間、B-C間)が均等になるだけ。 この場合は、最初の状態でのA-B間(B-C間)の間隔(スペース4個分)が保持されていません。 D---A---B---C 今回求めている結果 D----A----B----C
62 名前:デフォルトの名無しさん mailto:sage [2022/05/10(火) 11:55:55.13 ID:G5I31YZG0.net] Cを必要なだけ右に寄せてからその操作すれば? ぴったり位置合わせしたいとかなら https://www.moug.net/tech/exvba/0120023.html 辺り参考に
63 名前:デフォルトの名無しさん mailto:sage [2022/05/10(火) 11:58:47.56 ID:Q/OuvBXU0.net] >>56 どのチェックボックス?フォーム?activeX?
64 名前:デフォルトの名無しさん mailto:sage [2022/05/10(火) 13:26:52.13 ID:EvytVRjpd.net] >>57 Controls.Addでマクロにパーツを作らせて位置を指定するか自動計算させれば簡単 自分でイベント作る必要はあるかも
65 名前:57 mailto:sage [2022/05/10(火) 21:53:08.05 ID:4FhYKkQU0.net] >>63 ありがとうございます。調べてやってみます!
66 名前:デフォルトの名無しさん mailto:sage [2022/05/10(火) 21:54:52.33 ID:4FhYKkQU0.net] >>61 ありがとうございます。参考にします。
67 名前:56 mailto:sage [2022/05/11(水) 07:58:45.59 ID:VwZpfkps0.net] >>62 「チェックボックス」だけの情報だと二つあるんですね すみません。 調べたところフォームのほうのチェックボックスでした。
68 名前:デフォルトの名無しさん mailto:sage [2022/05/12(木) 01:22:53.69 ID:UrRQ3K070.net] 'これ実行するとどうなりますか? 'Q1 「 3.2to4.1(14)ng:4>=4 」と ' 「 3.2to4.1(25)ng:4>=4 」になりますか? 'Q2 「 3.7to4(9)ng:4>=4.9 a:3.9 」と ' 「 3.8to4(9)ng:4>=5 a:4 」になりますか? Sub test() For i = 1 To 4 Step 1 Select Case i Case 1 a_from = 3.2: a_to = 4.1: a_max = 4# 'if[4 >= 4]でFalseになる Case 2 a_from = 4.2: a_to = 5.1: a_max = 5# 'if[5 >= 5]でFalseになるか確認用 Case 3 a_from = 3.7: a_to = 4#: a_max = 4# 'aが3.9までしかいかない Case 4 a_from = 3.8: a_to = 4#: a_max = 4# 'aが4までいく End Select c = 0 Debug.Print "***** from " & a_from & " to " & a_to & " max " & a_max, String(60, "*") For a = a_from To a_to Step 0.1 For b = 0# To 0.2 Step 0.1 c = c + 1 ab = a / (1 - b) okng = "ng" If a_max >= ab Then okng = "OK" Debug.Print a_from & "to" & a_to & "(" & c & ")" & okng & ":" & a_max & ">=" & Round(ab, 1) _ , "a:" & a, "b:" & b, "max:" & a_max, okng, "ab:" & ab ' Debug.Assert a_max >= a '[4 >= 4]でFalseになる Next Next Next End Sub
69 名前:デフォルトの名無しさん mailto:sage [2022/05/12(木) 02:12:42.08 ID:y5qWaFnT0.net] >>67 常識 https://blog.apar.jp/program/8900/
70 名前:デフォルトの名無しさん mailto:sage [2022/05/13(金) 15:49:14.84 ID:m1gysKVC0.net] Dim a a = Range("A1:B2") これだけでaが2×2の配列になるとたった今知ったのですが このことを手放しに使って良いのでしょうか、それとも邪道だから Dim a(2, 2)なり要素数まで指定した方が良いのでしょうか。
71 名前:デフォルトの名無しさん mailto:sage [2022/05/13(金) 15:56:46.69 ID:Bn5ry0500.net] >>69 問題ない VBA使えるやつならみんな知ってる
72 名前:デフォルトの名無しさん [2022/05/13(金) 16:05:23.39 ID:zF4dJdoD0.net] それ便利だけど誤読しやすいので静的メソッドにしてる ArrayExt.FromRange(Me.Range("A1:B2")) みたいな
73 名前:デフォルトの名無しさん mailto:sage [2022/05/13(金) 19:41:50.80 ID:q/KvZ9/90.net] officescript調べてみたけど意外と分かりやすかった これならVBAがなくなっても大丈夫そう
74 名前:デフォルトの名無しさん mailto:sage [2022/05/13(金) 19:50:05.37 ID:q/KvZ9/90.net] >>69 型使わないとバリアント型だから二次元配列になるわけか
75 名前:デフォルトの名無しさん mailto:sage [2022/05/13(金) 19:53:17.10 ID:q/KvZ9/90.net] ちなみに参考にしてる人はこう書いてた Dim a As Variant a = Range("A1:B2").Value
76 名前:デフォルトの名無しさん mailto:sage [2022/05/13(金) 22:54:29.72 ID:BcFt2CuGD.net] aは要するにポインタだからな
77 名前:デフォルトの名無しさん mailto:sage [2022/05/13(金) 22:58:14.08 ID:JesbR9jP0.net] c以上ならポインた
78 名前:デフォルトの名無しさん mailto:sage [2022/05/13(金) 23:28:52.57 ID:94QyLQ1Xa.net] >>69 誰も書いていないので驚いたが、 その方法でもいい、のではなくて、 その方法しかない。 あとは Variant を明示するかしないかの違いだけ。
79 名前:デフォルトの名無しさん (ワッチョイ ffbb-bUW4) mailto:sage [2022/05/14(土) 01:49:07 ID:5NJ35cqH0.net] セルの値を取得して書き換えて…ってやるより二次元配列で処理する方が体感3倍くらい速いから、高速化したいなら配列使えばいいよね ただ他の人もわかるようにとかメンテナンス性考えると避けた方が無難だったり、ケースバイケース
80 名前:デフォルトの名無しさん mailto:sage [2022/05/14(土) 04:08:54.94 ID:wh2tsa6Q0.net] 他人の使い勝手なんか微塵も考えていないヤツが大半だろ現場じゃあ
81 名前:デフォルトの名無しさん mailto:sage [2022/05/14(土) 04:13:11.38 ID:JIfRBOPe0.net] Variantはポインタじゃなくて共用体 そもそもVariantオブジェクトはVBA固有の機能じゃなくてWindowsに組み込まれてて、別の言語からも自由に使える どういう場面で役に立つのかわからんけど
82 名前:デフォルトの名無しさん mailto:sage [2022/05/14(土) 04:32:51.17 ID:bV9+cuz+M.net] ポインタ的な使い方するならVariant型ではなくてObject型 Dim a As Object (総称オブジェクト型) Rangeオブジェクトに特定するなら Dim a As Range (固有オブジェクト型)
83 名前:デフォルトの名無しさん [2022/05/14(土) 08:18:11.37 ID:ddohEedh0.net] Variantってよく分からん型だよな Objectもそうでないものも仕舞えるし .Netで封印されたのも頷ける
84 名前:デフォルトの名無しさん mailto:sage [2022/05/14(土) 10:07:30.24 ID:BHEGSPOf0.net] >>78 配列の方が断然早いよね。 富○通がVBで作ったEXCEL名簿出力アプリが5時間以上かかってるのが、俺がEXCELVBAで組んだのは30分で終わる。 しかも富○通のはデータ1行ごとにコピペしてるので 動かしてる間コピーのバッファが奪われて他の作業が一切できない。
85 名前:デフォルトの名無しさん [2022/05/14(土) 10:48:24.07 ID:0kHlnQQT0.net] オレオレ自慢
86 名前:デフォルトの名無しさん mailto:sage [2022/05/14(土) 10:57:42.22 ID:jjfnS8MSd.net] VBのコードみてVBAにする際に少し手直しした程度なんだと思うが どの程度のデータか不明だけど30分もかかるような処理も自分としてはNGだわ まあどっちも夜流して朝みればいいなら5時間でも一緒程度
87 名前:デフォルトの名無しさん mailto:sage [2022/05/14(土) 11:08:32.24 ID:XMrr4JDhr.net] 何分とかかかる時点でRDBとか外出ししてやれないかとか考えちゃう Excelには荷が重いんじゃないかとね
88 名前:デフォルトの名無しさん mailto:sage [2022/05/14(土) 11:27:37.36 ID:x+cFGSU+a.net] どんだけ長い処理でも耐えられて2分までだわ 30分かかるとか論外
89 名前:デフォルトの名無しさん mailto:sage [2022/05/14(土) 11:39:20.09 ID:tj4PNqc2d.net] そんなに処理に時間がかかるってことは多分生データが数Gクラスだろうからaccessやexcelでは非効率だろう ここに>83の間抜けさがよく現れてる
90 名前:デフォルトの名無しさん mailto:sage [2022/05/14(土) 11:43:13.01 ID:5E8BmIH10.net] そんな大規模なデータを扱ったことないからわからないけど 30分もかかったら途中で無限ループに入ってんだろなと思って止めてしまうわ
91 名前:デフォルトの名無しさん mailto:sage [2022/05/14(土) 11:59:12.73 ID:VTp6T5x/0.net] vbaを30分も動かすってどんな処理だよ あとあまり長い時間動かしっぱなしにすると大体フリーズしてるぞ
92 名前:デフォルトの名無しさん mailto:sage [2022/05/14(土) 12:14:29.94 ID:jjfnS8MSd.net] どんな処理でも構わないけどExcelのプロセスが起動してるときに新規のExcel起動>ファイルを開くで開けばいいけど 無意識のうちにダブルクリックなんかで開こうとしたらVBA実行中のプロセスで開かないとも限らないから 30分の拘束ってのは日中ならなし
93 名前:デフォルトの名無しさん mailto:sage [2022/05/14(土) 12:55:50.88 ID:JIfRBOPe0.net] そんなに速くしたら、フリーズしてないか監視する仕事の人がクビになっちゃうだろ ああいうのは、わざと1日かかるように作ってあるんだよ
94 名前:デフォルトの名無しさん (ワッチョイ 7dda-o6RS) mailto:sage [2022/05/14(土) 13:31:33 ID:wh2tsa6Q0.net] なんでExcelエキスパート集団の富○通がそんなクソ遅いマクロ書くのか不思議だ。
95 名前:デフォルトの名無しさん mailto:sage [2022/05/14(土) 15:15:38.33 ID:VTp6T5x/0.net] >Excelエキスパート集団 それはない
96 名前:デフォルトの名無しさん [2022/05/14(土) 16:41:13.43 ID:9uXA4NxPd.net] 富士通が直接作っているのでないだろうし、たった一つの例で全部がわかったつもりになる幼稚なアホ
97 名前:デフォルトの名無しさん mailto:sage [2022/05/14(土) 18:27:44.98 ID:msymY1pp0.net] あんまり処理に時間かかるようなやつならプログレスバーやらひとまず動いてることがわかるようなものを入れとくわ
98 名前:デフォルトの名無しさん mailto:sage [2022/05/14(土) 18:32:44.86 ID:qaSd7ep40.net] 1.xlsx、2.xlsx、3.xlsx、・・・、1000.xlsxという連番のブックがあって そのすべてにssssというシートがあって そのすべてのD2(R2C4)セルにデータがあるとして あるブックのA1~A1000に1~1000が入力してあって、 それぞれの隣(B1~B1000)に対応するブック(B500には500.xlsx)の シートssssのD2セルの中身を持ってくるのってどうすればいいですか? ExecuteExcel4Macroとか使ってそんなに難しくなくやれるかと思いきやまるでうまくいかない…
99 名前:デフォルトの名無しさん mailto:sage [2022/05/14(土) 18:58:29.62 ID:lDPvxjtFD.net] >>94 方眼紙はじめとした使い方への皮肉だろ
100 名前:デフォルトの名無しさん [2022/05/14(土) 19:14:09.21 ID:yHnyJFGQ0.net] >>97 他に条件や例外がないなら自分で書いてる通り「そんなに難しくない」が、どこで詰まってるの?
101 名前:デフォルトの名無しさん mailto:sage [2022/05/14(土) 19:20:25.44 ID:VTp6T5x/0.net] >>97 ExecuteExcel4Macroはデフォで無効にされた なんか知らんが俺も動かせなかったからもうベタ書きで https://forest.watch.impress.co.jp/docs/serial/yajiuma/1357642.html Sub Sample1() Set t = ThisWorkbook For i = 1 To 3 Set databook = Workbooks.Open(Filename:="C:\Users\81909\Downloads\" & i & ".xlsx") t.Sheets("ssss").Cells(i, 2) = databook.Sheets("ssss").Cells(2, 4) databook.Close Next End Sub >>98 それならok
102 名前:デフォルトの名無しさん mailto:sage [2022/05/14(土) 19:26:19.82 ID:msymY1pp0.net] 内容あまり理解出来てないのかもしれないけど B500の行取得してワークブックオープンで引数ファイルパス500で開いてデータ抜きたいところ抜けば良いのではないでしょうか。 4使うあたり処理を重くしたくないのでワークブックを開きたくないようにも見えますが
103 名前:デフォルトの名無しさん mailto:sage [2022/05/14(土) 19:51:35.87 ID:jjfnS8MSd.net] こんな感じになる文字列を作ればいけないか?(フォルダ名とファイル名を変更していく) MsgBox ExecuteExcel4Macro("'フォルダ名\[1000.xlsx]ssss'!R2C4")
104 名前:デフォルトの名無しさん (ワッチョイ 91da-Hs+l) mailto:sage [2022/05/15(日) 01:22:22 ID:xmtudDvv0.net] MSHTML.HTMLDocumentのbody.outerHtmlに何か代入しようとすると、 あるPCでは問題なく出来るのに、 別のPCではアプリケーション定義のエラーがでる 何故? ソースは同じなのに
105 名前:デフォルトの名無しさん mailto:sage [2022/05/15(日) 08:18:10.46 ID:Jt2O43PNd.net] 参照設定は?
106 名前:デフォルトの名無しさん mailto:sage [2022/05/15(日) 13:24:19.34 ID:K6VbLnva0.net] >>68 即レスいただいてたのに遅くなりました。ありがとうございます。 常識なんですね。とてもためになりました。 少数が原因だろうと思いつつもローカルウィンドウの値は整数だし Fixしても発生するので困ってました。ありがとうございます。
107 名前:デフォルトの名無しさん mailto:sage [2022/05/15(日) 15:21:30.27 ID:xmtudDvv0.net] >>104 してある してないと違うエラーメッセージだったような
108 名前:デフォルトの名無しさん mailto:sage [2022/05/15(日) 17:45:40.00 ID:SLK6Xy6bp.net] >>106 参照不可はない?
109 名前:デフォルトの名無しさん mailto:sage [2022/05/15(日) 17:49:03.93 ID:i2BwfRJap.net] >>83 依頼元の情報提供不足。対象件数とか。
110 名前:デフォルトの名無しさん mailto:sage [2022/05/15(日) 20:29:54.61 ID:EFSZcQ6p0.net] VBAで作ったブックを指定するにはどうやるのがいいんでしょうか VBAで複数ブックを作るとBook1、Book2、…となりますが、 どうやってそれぞれのブックを指定してやればいいのかが分かりません
111 名前:デフォルトの名無しさん mailto:sage [2022/05/15(日) 20:48:22.92 ID:xHyGsu5B0.net] ブックの作成の際にワークブック変数にセットする set=workbooks.add
112 名前:デフォルトの名無しさん mailto:sage [2022/05/15(日) 21:20:44.06 ID:i/ziY72x0.net] 変数に格納するってのは名前をつけてあげるみたいな意味合いがある気がする 変数作ってセットすれば呼び出しやすい
113 名前:デフォルトの名無しさん (ワッチョイ ebda-yvGd) mailto:sage [2022/05/15(日) 22:58:08 ID:e0cA7YQF0.net] Set wb = ThisWorkbook Set ws = wb.Worksheets("sheet名") とやっといて、 カーソル移動したいだけなのに、 ws.Range("B3").Select とやったら、 「RangeクラスのSelectメソッドが失敗しました」 と出て動かなくなって・・・??? 原因はRange.Selectやる前に 当該sheetをActivateしていないことだと 今日、ようやく知ったアタシが通り過ぎますよ・・・
114 名前:97 mailto:sage [2022/05/15(日) 23:36:58.31 ID:VONG1GsX0.net] >>101 おっしゃる通りワークブックを開きたくなかったんです 諦めて>>100 さんの手法でいきました ありがとうございました。
115 名前:デフォルトの名無しさん mailto:sage [2022/05/15(日) 23:39:04.92 ID:km049kvp0.net] >>112 VBAやっててSelect使うことなんてほぼ無いんだからその仕様を知らないことを気にしなくていい
116 名前:デフォルトの名無しさん mailto:sage [2022/05/15(日) 23:53:26.84 ID:sFHTlWBy0.net] >>113 officetanaka.net/excel/vba/tips/tips28.htm フルパス指定すればいけるっぽいけどそーゆー話ではないのかな?
117 名前:デフォルトの名無しさん mailto:sage [2022/05/16(月) 00:14:35.90 ID:D08mu/WY0.net] セルとかSelectするのは最後くらいだもんなあ
118 名前:デフォルトの名無しさん mailto:sage [2022/05/16(月) 01:37:32.91 ID:PWfPx8Kl0.net] >>107 無いんだよね 代入が出来ないだけで表示は出来るんだけど、 ""の空文字すら入れられないのは何なのか… 型が一致しないエラーでもないし 仕方がないからDocument.writeで代用したけど
119 名前:デフォルトの名無しさん (ワッチョイ ebda-Lh2i) mailto:sage [2022/05/16(月) 07:25:27 ID:x3MSJzWb0.net] >>114 気象庁の過去気象データ1時間値を DLしようとしたら、 1日ごとにURLが違うので、 1日分を読んではコピペさせてるんだけど・・・ 単体項目なら1年分一度に落とせるけど、 1観測地点の全項目は1日ごとの模様
120 名前:デフォルトの名無しさん mailto:sage [2022/05/16(月) 09:05:21.75 ID:gw7DnXAE0.net] >>118 データをコピペするだけならカーソル移動は必要ない それと、1日ずつDLだと365回になるけど、項目ごとなら15項目、15回のDLで済むからずっと早く終わると思うんだけど
121 名前:デフォルトの名無しさん mailto:sage [2022/05/16(月) 10:02:47.99 ID:a802uHDS0.net] ワイなら大まかに 「データをURLでフェッチする」機能 「データをシートに表現する」機能 とかに分けてそれぞれの中でループする どんなデータ取るんかとか知らんけど 過去の気象データなら変化ないんやろから(少しずつしか追加されないし) あらかたDLしちゃって毎日追加する運用でよくね Accessで動くか知らんがワイなら楽だし(R)DBにして、 Excelは表現に特化させる まあDBとして考えるなら119の言うように特定のデータをカラムとして取り込むほうがいいけどね
122 名前:デフォルトの名無しさん mailto:sage [2022/05/16(月) 11:38:04.10 ID:DOkjRxjB0.net] >>115 この人の書くコードは読みやすいよね
123 名前:デフォルトの名無しさん mailto:sage [2022/05/16(月) 13:47:28.98 ID:CQNp6U12M.net] >>119 >>118 > データをコピペするだけならカーソル移動は必要ない そうなんだ・・・ あたしゃ、 単ページのDLとその後の整形は PowerQuelyがやりやすかったので、 勢い、1日分ごと切って貼ってをVBAで・・・ って発想でやってた。 クエリー更新もVBAの中に入れて。 ネットの事例かき集めて 自己流で作ったのはこんな感じ。 ' DBテーブルの最終行の次行を計算 k = Range("R_Row_DB_Title").Value l = tbl3.ListRows.Count + k + 1 ' 単位読取りテーブルのデータ行をコピーして、 ' DBテーブル最終行の次行
124 名前:ゥら貼り付ける Sheets("DL単位").Select ' この記述を入れないと次を認識しなかった tbl2.DataBodyRange.Select Selection.Copy Sheets("DB").Select Range("A" & l).Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False ActiveCell.SpecialCells(xlLastCell).Select [] [ここ壊れてます]
125 名前:デフォルトの名無しさん [2022/05/16(月) 22:38:43.92 ID:zF5DsILOd.net] 0 b 1 a 3 a 7 a 9 b 13 a 18 a 17 b aがbに入れ替わったら、上に隣接するa群の一番上(1 a)の数字を参照し、9-1=8を入力 bがaに入れ替わったら、上に隣接するb群の一番上(9 b)の数字を参照し、9-13=-4を入力 これを終わりまで自動入力したいのですが、どう書けばいいでしょうか。 いまいち説明がうまくできなくてすみません。
126 名前:デフォルトの名無しさん mailto:sage [2022/05/17(火) 06:57:27.10 ID:OSHWxoLA0.net] >>110 ありがとうございます まさかこんな単純な解決法だったなんて 勉強になりました
127 名前:デフォルトの名無しさん mailto:sage [2022/05/17(火) 14:46:10.58 ID:le3TeRDS0.net] >>123 こんな感じ? https://i.imgur.com/1sgRHL7.png
128 名前:デフォルトの名無しさん (ブーイモ MMe1-mtI6) [2022/05/17(火) 19:15:44 ID:ZA1GChKVM.net] >>123 >いまいち説明がうまくできなくてすみません。 問題を上手く説明できる事は、プログラミング能力の上達にとても大事な事。
129 名前:デフォルトの名無しさん [2022/05/17(火) 22:53:48.79 ID:bIs4gfyOd.net] >>125 ありがとうございます。 試してみてるのですが、画像G14が何をしてるか教えていただけないでしょうか・・ >>126 (・へ・)
130 名前:デフォルトの名無しさん mailto:sage [2022/05/17(火) 23:08:31.99 ID:le3TeRDS0.net] >>127 >上に隣接するa群の一番上(1 a)の数字を参照 この部分 E,F列は切り替わった部分を取得している。row()にすることで、切り替わった部分を取得できる maxで、切り替わった直近を取得 あとはindexmatchでA列を取得
131 名前:デフォルトの名無しさん mailto:sage [2022/05/18(水) 00:40:35.16 ID:54FLML710.net] >>127 人様に迷惑掛けるだけの人?
132 名前:デフォルトの名無しさん [2022/05/18(水) 23:00:11.54 ID:08bF+6I50.net] 質問です EXCELのアプリケーションを別途立ち上げて それをVBAを実行しているブック側から制御することは可能でしょうか? 可能だとすればどのようにすれば実現できますか?
133 名前:デフォルトの名無しさん mailto:sage [2022/05/18(水) 23:31:31.92 ID:yWpeDHxGd.net] Application.RUN
134 名前:デフォルトの名無しさん mailto:sage [2022/05/19(木) 06:39:30.30 ID:3ImK9i5g0.net] VBAエキスパートの本見てみたけどこの範囲なら取得するのは楽勝だな
135 名前:デフォルトの名無しさん mailto:sage [2022/05/19(木) 12:33:14.63 ID:uClc3Hkf0.net] VBAの資格、人気度高いね。 ただ企業によっては何それ??的な見方されるのがちょっと。。
136 名前:デフォルトの名無しさん mailto:sage [2022/05/19(木) 15:57:56.76 ID:ednyHaa30.net] VBAでWinアプリ制御するマクロの動画作ったんだが誰も見てくれないや。 そういう需要てないのか?
137 名前:デフォルトの名無しさん mailto:sage [2022/05/19(木) 16:56:56.93 ID:OfQgMZCZ0.net] >>134 API使ってバックグラウンドで制御してるなら見る
138 名前:デフォルトの名無しさん mailto:sage [2022/05/19(木) 17:15:23.09 ID:ednyHaa30.net] >>135 https://youtu.be/DL9MuwJfXVw
139 名前:デフォルトの名無しさん mailto:sage [2022/05/19(木) 18:18:22.53 ID:H0TVdlz+M.net] ゆっくり茶番劇® か
140 名前:デフォルトの名無しさん mailto:sage [2022/05/19(木) 18:19:37.44 ID:OfQgMZCZ0.net] >>136 面白そう、家帰ったら見よう
141 名前:デフォルトの名無しさん mailto:sage [2022/05/19(木) 21:37:06.79 ID:3ImK9i5g0.net] RPA使わなくてもVBAでも結構出来るんだよね キーボード、マウス操作出来るしなんなら読み上げも出来るし アプリ立ち上げと組み合わせれば色々出来る
142 名前:デフォルトの名無しさん mailto:sage [2022/05/19(木) 22:26:16.70 ID:JItdutDu0.net] RPAは自動化そのものだから、 VBAでRPAを実現してるだけだぞ
143 名前:デフォルトの名無しさん (ワッチョイ c38c-i+mZ) [2022/05/19(木) 23:19:27 ID:5QG/OJCT0.net] >>136 動画名にExcelって必ず入れとかないと この手のネタを見たい人に検索で見つけてもらえない あと時々Excelで予定表の作り方とか番外編としてド素人受けするネタをエサとしてupするとか
144 名前:デフォルトの名無しさん mailto:sage [2022/05/19(木) 23:27:11.45 ID:uClc3Hkf0.net] ゆっくりの顔はこれから無料で使用できなくなるんだよね?
145 名前:デフォルトの名無しさん mailto:sage [2022/05/19(木) 23:45:08.95 ID:EjpQ3dyV0.net] できる 動画名にゆっくり茶番劇って入れたらダメ
146 名前:デフォルトの名無しさん mailto:sage [2022/05/19(木) 23:51:09.33 ID:ednyHaa30.net] >>141 トンクス。 オレのExcel2013だから今風のネタが作れないんだよね。 祝日込の予定表作ろうかと思ったら、自分のやつじゃpowerquery使えないことに気づいたわ。 だから誰もやってないネタとしてRPAもどきをやってみた。
147 名前:デフォルトの名無しさん mailto:sage [2022/05/20(金) 12:02:22.42 ID:QJ3dWDHN0.net] 2013でパワークエリ使っていた同僚いたけど、どうやったのだろ??
148 名前:デフォルトの名無しさん [2022/05/20(金) 14:24:00.71 ID:Sdn4LcDR0.net] >>145 使えるぞ >>144 が馬鹿なだけ
149 名前:デフォルトの名無しさん mailto:sage [2022/05/20(金) 15:47:49.30 ID:J0VXxMmC0.net] >>144 まぁ、やってみなはれ。 https://www.microsoft.com/ja-jp/download/details.aspx?id=39379&CorrelationId=85f847dd-369e-4417-b604-6a2f3c673084
150 名前:144 mailto:sage [2022/05/20(金) 16:37:29.66 ID:zIX8lMtd0.net] アドインを入れなきゃ使えんなんて知らんわ。 まあ、やってみるよ。
151 名前:デフォルトの名無しさん (ワッチョイ 7dda-o6RS) mailto:sage [2022/05/20(金) 18:17:06 ID:QJ3dWDHN0.net] 確かに。知っている人は少ないはず。2013にパワークエリアドイン。
152 名前:デフォルトの名無しさん mailto:sage [2022/05/20(金) 21:07:42.32 ID:vMDI6+gYM.net] >>149 使いたくて見つけられないのは馬鹿だと思うよ?
153 名前:デフォルトの名無しさん mailto:sage [2022/05/20(金) 21:09:21.29 ID:7ynD7rzD0.net] ニッチな動画すぎるわ こういうのはたまに腕前を見せる程度でいいと思うぞ
154 名前:デフォルトの名無しさん mailto:sage [2022/05/20(金) 21:34:55.10 ID:Dykg0reN0.net] エクセル動画って意外と伸びないんだよ 再生数あげてる動画も、数年かけてやっとこさ5桁とかそんなん
155 名前:デフォルトの名無しさん mailto:sage [2022/05/20(金) 22:12:27.54 ID:jYa2tCV10.net] 文字には勝てんよwww
156 名前:デフォルトの名無しさん mailto:sage [2022/05/21(土) 00:43:35.28 ID:tFOC1nFU0.net] YouTubeでしょ? Excel動画の一部で100万回とか200万回再生動画あるけど、あれは例外かな? 配信者が人気度高いとか?
157 名前:デフォルトの名無しさん mailto:sage [2022/05/21(土) 01:12:54.43 ID:FuQQRFwo0.net] ぶっちゃけいちいち動画にするのやめてくれとしか思わんな テキストに書いてくれと
158 名前:デフォルトの名無しさん mailto:sage [2022/05/21(土) 07:53:33.56 ID:QJ4+3poJ0.net] それは見なきゃいいだけじゃね
159 名前:デフォルトの名無しさん mailto:sage [2022/05/21(土) 08:06:57.86 ID:UbenPHXM0.net] >>156 ?
160 名前:デフォルトの名無しさん mailto:sage [2022/05/21(土) 08:54:23.72 ID:ZErRlfK3d.net] たいがいのことは検索すればブログと動画と両方出てくる 好きな方を見ろとしか
161 名前:デフォルトの名無しさん mailto:sage [2022/05/21(土) 09:03:39.72 ID:9Ja/LFqb0.net] >>153 文字だとさ、その分の数行を細切れに書くやつがいてさ、 その分だけ見せられても困る事が多い。 解説書気取りなんだろうけど。 VBAならいいけど、pythonとかだと全体が見れないとな。
162 名前:デフォルトの名無しさん mailto:sage [2022/05/21(土) 12:06:30.15 ID:zgbylN/DM.net] >>159 ドーガってソース全体見せながら饅頭が喋るの?
163 名前:デフォルトの名無しさん mailto:sage [2022/05/21(土) 13:24:13.30 ID:yO41HbkGd.net] 64bitだとdatepickerが使えないんだけど代替有りますか?
164 名前:デフォルトの名無しさん mailto:sage [2022/05/21(土) 22:05:53.36 ID:UbenPHXM0.net] >>161 無いんだな、これが あと64bitじゃなくて2013か2016あたりから使えないはず
165 名前:デフォルトの名無しさん mailto:sage [2022/05/22(日) 00:44:38.46 ID:VeiX84dqd.net] クリップボードに あああ いいい 123 たたたた ららら 12ああ 000 1 かかか あかさ たなは 358 22558 のようにランダムな文字列や数字がはいっています。 空白や改行の数もランダムですがどちらも5個いないです。 あああ、や、いいい、の間は空白や改行のどちらかです。 文字列または数字を、空白か改行で区切って 横に10列ずつに並べたいです。 A1に「かかか」B1に「いいい」おなじように繰り返してJ1に「あかさ」、次はA2に「たなは」が入るようなイメージです。 うまく伝わっているかわかりませんが、どのようなコードを書いたらいいですか?
166 名前:デフォルトの名無しさん [2022/05/22(日) 02:13:20.90 ID:EshCCJ/od.net] >>163 まずはちゃんと伝えるように書け
167 名前:デフォルトの名無しさん mailto:sage [2022/05/22(日) 02:46:34.46 ID:EqID4SVmM.net] >>163 よくわからん部分もあるが クリップボードからテキストフォーマットのデータをstrに読み込んで改行ごとに分割(spritかね) 分割した文字列を更にスペースごとに分割して2次元配列にいれる あとはそれをセルに転写すればいいんじゃないの? 分けるのが改行と空白両方ならどっちかにリプレースしてからスプリット
168 名前:デフォルトの名無しさん (アウアウウー Sac7-xdJx) mailto:sage [2022/05/22(日) 06:43:53 ID:e+a5DD9Ja.net] >>163 とりあえずその状態で欲しい結果を書け
169 名前:デフォルトの名無しさん (ワッチョイ 9768-A7oz) mailto:sage [2022/05/22(日) 06:45:54 ID:g+ilDpCn0.net] >>163 連続する改行と空白を消す。 for i = 1 to 5 a = Replace(a, vbCrLf & vbCrLf, "") a = Replace(a, " " & ” ” , "") next 改行を空白に置換する splitで分ける 配列をセルに入れる
170 名前:デフォルトの名無しさん (ワッチョイ 9768-A7oz) mailto:sage [2022/05/22(日) 06:46:20 ID:g+ilDpCn0.net] >>166 A1に「かかか」B1に「いいい」おなじように繰り返してJ1に「あかさ」、次はA2に「たなは」が入るようなイメージで
171 名前:デフォルトの名無しさん mailto:sage [2022/05/22(日) 08:05:25.80 ID:kuwcJLnp0.net] どういう順番にしたらA1にかかかが来るのかがよく分からない
172 名前:デフォルトの名無しさん mailto:sage [2022/05/22(日) 08:09:48.09 ID:g+ilDpCn0.net] A1に「かかか」 ↓ A1に「あああ」 間違えてるだけだろ、それぐらい見抜こう
173 名前:デフォルトの名無しさん mailto:sage [2022/05/22(日) 08:43:32.82 ID:kuwcJLnp0.net] 書かれてる仕様を思い込みで勝手に書き換えたらいかんでしょ 作り込む前に確認を取らなきゃダメだよ
174 名前:デフォルトの名無しさん (アウアウウー Sac7-xdJx) mailto:sage [2022/05/22(日) 09:43:55 ID:aVdyttIba.net] >>168 Dim S As String With CreateObject("new:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}") .GetFromClipboard S = .GetText End With With CreateObject("VBScript.RegExp") .Pattern = "[ \n]+" .Global = True Dim R As Long R = 1 Dim C As Long C = 1 Dim T As Variant For Each T In Split(.Replace(S, " "), " ") Cells(R, C).Value = T C = C + 1 If 10 < C Then C = 1 R = R + 1 End If Next End With
175 名前:デフォルトの名無しさん mailto:sage [2022/05/22(日) 10:01:24.95 ID:q4bvZkadM.net] >>172 あらキレイ
176 名前:デフォルトの名無しさん mailto:sage [2022/05/22(日) 10:11:15.36 ID:RbyXtd/h0.net] >>173 綺麗に見えるだろ? このコード、死んでるんだぜ…ヘヘッ
177 名前:デフォルトの名無しさん mailto:sage [2022/05/22(日) 10:37:59.11 ID:TDPiVbwY0.net] >>163 VBAスレでいうのもアレだと思うけど 「改行、スペースで区切られたテキストデータを、10個ずつ(10列ずつ)で改行されるデータとして抽出したい」 って考えると正規表現可能なテキストエディタでやったほうが良いような気がする。 ( | |\r\n) を \t \t+ を \t ((.*?\t){2}) を $1\r\n にみたいな感じで
178 名前:デフォルトの名無しさん mailto:sage [2022/05/22(日) 13:05:55.15 ID:QBTEeDJr0.net] >>163 同じくVBAスレでいうのもアレだし>>172 でよいと思うけど powershell -c "(gcb -raw) -replace '\s+', """"`t"""" -replace '((?:[^\t]+\t){9}[^\t]+)(?:\t|$)', """"`$1`r`n""""|scb" VBAから実行するなりバッチファイル(.bat)にして実行するなりすると 整形結果がクリップボードに入るのでA1を選択して貼り付け。 すでにExcel上にあるデータなら>>172 とかが有力だけど、 入力元がクリップボードならクリップボード格納前後(VBA前)で テキスト処理に向いた言語や手法(>>175 )で整形したらいいんじゃないの、と思う。 餅は餅屋、ってことで。 今回だとクリップボード操作と正規表現向き内容なのでPowerShellが向いてそう。 ・実行環境のOS(Windows 7で実行されうるか) ・文字列にダブルクォーテーションが含まれうるか ・「空白」の正確な定義(レアな空白を「空白」に含んでよいか) ・『A1に「かかか」』の謎 ・この整形処理前後の処理(処理全体、本当の処理目的) などにもよるけど。
179 名前:デフォルトの名無しさん mailto:sage [2022/05/22(日) 19:14:42.01 ID:Np0e+b7dd.net] 常にそうだとは言わないけど、VBAでいろんなことしようとする人って 会社内でセキュリティに縛られてVBAしか使えないような環境でこっそりやってる場合が多いんじゃね うちなんてpowershellさえ使えない
180 名前:デフォルトの名無しさん mailto:sage [2022/05/22(日) 21:09:09.39 ID:2g8+RnwC0.net] >>177 VBAとVBScript/Jscriptはそれの定番だよ。 IEがなくなるとスクレイピングができなくなるよな。 そういう環境下だと、どうするんだろう。
181 名前:デフォルトの名無しさん mailto:sage [2022/05/22(日) 21:19:32.54 ID:uG5Z2bGad.net] 163です。 レスくださった方ありがとうございました。 結論から言うと、>>172 を加工してなんとなくうまくできました。 A1セルは「あああ」が正しいです。すみません。
182 名前:デフォルトの名無しさん mailto:sage [2022/05/22(日) 21:33:47.57 ID:g+ilDpCn0.net] それぐらい分かってるから大丈夫だ
183 名前:デフォルトの名無しさん mailto:sage [2022/05/23(月) 17:38:33.02 ID:KrqlZBhkM.net] 表示するのにラグを発生させたい場合sleepかウェイトを試して見たのですがソースの途中に入れても実行最初に止まって全部表示されてしまうのですがなにかいい方法はないのでしょうか
184 名前:デフォルトの名無しさん mailto:sage [2022/05/23(月) 17:51:32.07 ID:KArKRscP0.net] 何の表示だよ
185 名前:デフォルトの名無しさん mailto:sage [2022/05/23(月) 17:58:05.38 ID:KrqlZBhkM.net] セルに挿入です for文を挟んでいるとどうもすべて止まって一括表示されてしまいます
186 名前:デフォルトの名無しさん mailto:sage [2022/05/23(月) 18:38:04.00 ID:nw7KfNpjD.net] ループ内で都度再表示させればいいんじゃねーの
187 名前:デフォルトの名無しさん mailto:sage [2022/05/23(月) 18:45:16.94 ID:S7FOVsdv0.net] excelのシートのA列に◎オプションボタンActiveXを付けた、B列には商品名(3000件くらいある)を入れた。 ◎ りんご ◎ みかん ◎ ぶどう ◎ ばなな ぶどうを選んだら、TRUEになった番号は「3番」って返ってきているのですが、3000件を設定するのが大変で一括で設定できる方法があれば何かヒントを教えてください。
188 名前:デフォルトの名無しさん mailto:sage [2022/05/23(月) 20:02:47.45 ID:BtAHO3WV0.net] >>181 なんのためのラグかを書けばもう少しマシなやり方を教えてくれるかも
189 名前:デフォルトの名無しさん mailto:sage [2022/05/23(月) 20:48:26.86 ID:e/WRg45j0.net] >>183 DoEvents
190 名前:デフォルトの名無しさん (ワッチョイ 9768-A7oz) mailto:sage [2022/05/23(月) 20:58:57 ID:BtAHO3WV0.net] Sub foo() Range("a1:z100").Formula = "=rand()" End Sub こういうのを徐々に表示したいってなら、無理だ
191 名前:デフォルトの名無しさん mailto:sage [2022/05/23(月) 21:43:20.23 ID:2/Utrmz50.net] Do Eventsってイマイチちゃんと意味を理解しない状態で使ってる気がする なんか図形でアニメみたいな動きさせるとか 入れると安定したり
192 名前:デフォルトの名無しさん mailto:sage [2022/05/23(月) 23:30:03.20 ID:e/WRg45j0.net] >>189 WindowsというOSの(ほぼ)すべてがイベントで動いてる キー入力も画面表示もディスクアクセスも、何をするにもイベントが必ず使われる 普通に使ってるだけで、ユーザーの関知してないところで毎秒数十万回以上のイベントが発生してて、その一部は溜めたり無視することもできる そこで溜まったイベントをまとめて処理するのがDoEvents
193 名前:デフォルトの名無しさん mailto:sage [2022/05/23(月) 23:44:03.30 ID:lhQpV8J50.net] 肥溜めの水で流すボタンだな
194 名前:デフォルトの名無しさん (スップ Sdba-LYQt) [2022/05/23(月) 23:54:22 ID:hvqO78Q3d.net] >>190 中途半端な知識の人の回答だな 所詮はExcel使いか
195 名前:デフォルトの名無しさん (ワッチョイ abda-ZFfB) mailto:sage [2022/05/24(火) 00:04:30 ID:voOeNnQV0.net] そうか?
196 名前:デフォルトの名無しさん mailto:sage [2022/05/24(火) 01:52:28.78 ID:KUFh4POM0.net] ググって読んでもさっぱりわからんがプロシージャの共通化(´・ω・`)これかも。
197 名前:デフォルトの名無しさん mailto:sage [2022/05/24(火) 02:50:59.45 ID:iiO+sB1VM.net] >>190 ExcelのVBAがWindowsの全てのイベントを処理しているとでも思ってんの? いつの時代のWindowsだよ
198 名前:デフォルトの名無しさん (ワッチョイ 372f-tVBN) [2022/05/24(火) 06:09:04 ID:VAh5gH+20.net] >>195 話せ。
199 名前:デフォルトの名無しさん (ワッチョイ 0eda-yjPv) [2022/05/24(火) 06:13:25 ID:3Lu4tPby0.net] タスク
200 名前:デフォルトの名無しさん mailto:sage [2022/05/24(火) 13:00:25.03 ID:voOeNnQV0.net] 60歳70歳の古参プログラマーじゃないんだからさ
201 名前:デフォルトの名無しさん mailto:sage [2022/05/24(火) 21:38:10.53 ID:ylp1zOdx0.net] Loop中など他からの割り込みの余地入れる=DoEventsかと思ってました 厳密な意味は知らずに使ってました
202 名前:デフォルトの名無しさん mailto:sage [2022/05/24(火) 22:07:09.92 ID:kwRZndg1d.net] 昔はWindowsのイベントループそのものだったけど、今は>>199 くらいの認識の方が正しいよ 今のExcelは裏でスレッド使いまくってるから複雑
203 名前:デフォルトの名無しさん mailto:sage [2022/05/24(火) 22:24:18.97 ID:L7ubAEHL0.net] 少しまだ難しいですが、とりあえずはwindowsの処理で無視していた分を一旦返してあげるみたいな処理なのだと認識しました。
204 名前:デフォルトの名無しさん mailto:sage [2022/05/24(火) 22:30:40.02 ID:1UrgJSe10.net] 昔はシングルコアで激重だったから適度に返さないとすぐに応答なしになった 今はマルチタスクで割と重い処理も平気
205 名前:デフォルトの名無しさん mailto:sage [2022/05/25(水) 05:02:47.05 ID:1b7KkSYk0.net] 個人用マクロブックのプロシージャからシートに挿入されているマクロのボタンを押す方法を教えて下さい
206 名前:デフォルトの名無しさん mailto:sage [2022/05/25(水) 06:07:16.42 ID:BON/kfv30.net] privateを削除するんじゃなくて? 物理的にクリック?
207 名前:デフォルトの名無しさん mailto:sage [2022/05/25(水) 06:43:21.13 ID:1b7KkSYk0.net] 物理的にではなくシート側のボタンのクリックイベントのプロシージャを個人用マクロブックのプロシージャから動かしたいです。
208 名前:デフォルトの名無しさん mailto:sage [2022/05/25(水) 06:45:16.14 ID:1b7KkSYk0.net] application.runは駄目でした
209 名前:デフォルトの名無しさん [2022/05/25(水) 06:47:11.61 ID:Vyx13HCI0.net] イベントとか言うから初心者が勘違いする
210 名前:デフォルトの名無しさん mailto:sage [2022/05/25(水) 07:53:58.12 ID:SJVW4y9pr.net] プロシージャの中身を外出ししようとか考えたのか?
211 名前:デフォルトの名無しさん mailto:sage [2022/05/25(水) 08:31:27.12 ID:2Cw1QSym0.net] >>203 Call
212 名前:デフォルトの名無しさん mailto:sage [2022/05/25(水) 09:47:51.39 ID:rgUSKbgWd.net] いやここはレイズだ
213 名前:デフォルトの名無しさん mailto:sage [2022/05/25(水) 18:45:23.11 ID:cRKMftFU0.net] >>206 呼び出し先のブック名は入れてるのかもしれないけどモジュールが複数あってモジュール名は入れてない、とか?
214 名前:デフォルトの名無しさん (ワッチョイ 3336-4kT2) mailto:sage [2022/05/25(水) 19:54:25 ID:ZQqE1PHN0.net] 説明が少なくて申し訳ありません。 マクロボタンのついた会社の帳票のマクロボタンを押して処理をした上に自分の個人用マクロブックの処理がしたいです。私は会社の帳票のマクロを変更する技術も権限もないのでこのような形を取っています
215 名前:デフォルトの名無しさん (アウアウウー Sac7-yjPv) [2022/05/25(水) 20:09:39 ID:ySKajOtFa.net] やっちゃいけないことじゃねーの
216 名前:デフォルトの名無しさん mailto:sage [2022/05/25(水) 20:44:02.25 ID:rgUSKbgWd.net] 会社のマクロにパスワードが掛かってる、かつ起点となるマクロはその会社の方のマクロって事かな? 1. 会社のExcelと個人で用意したxlsm(個人用ブックである必要無し)を準備する 2. vbs やps1の外部ファイルから会社のVBA実行→個人で用意したxlsm内のVBA実行 これで行けるんでねえの?
217 名前:デフォルトの名無しさん mailto:sage [2022/05/25(水) 20:52:50.14 ID:D9uW2fk+0.net] 変更する技術がないなら触らない方が良いと思うよ
218 名前:デフォルトの名無しさん mailto:sage [2022/05/25(水) 21:08:25.40 ID:UbZSbjiw0.net] そもそも権限のないものを突破しようってのは倫理的にどうなのって気がするが まずは上司なりなんなりに相談するところからじゃね
219 名前:デフォルトの名無しさん mailto:sage [2022/05/25(水) 21:14:00.59 ID:oImj9UUVM.net] ややこことは辞めたほうがいいね
220 名前:デフォルトの名無しさん mailto:sage [2022/05/25(水) 22:29:41.62 ID:BtdSsAyL0.net] パスワードかかってるマクロなんて適当な野良アプリでわかるけどな
221 名前:デフォルトの名無しさん mailto:sage [2022/05/26(木) 00:34:12.72 ID:O+gRo7JH0.net] 会社用のマクロ実行したあと、個人用マクロを実行するだけの作業なのに あくまでも自分の分からない領域まで手を入れたいってのは分からんな マクロ壊して分かりづらい変なトラブルになったら責任云々とかになりかねないかもしれんぞ 214のやり方がむりなら諦めるか上長に相談するべきやと思うで
222 名前:デフォルトの名無しさん mailto:sage [2022/05/26(木) 06:53:49.33 ID:FGzk4ul90.net] >>219 100個ぐらいあるエクセルファイルを開いて、そのエクセルファイルのマクロボタンを押して一回目の処理をして次に個人用マクロブックに作った処理をしてエクセルファイルを上書き保存して閉じるを繰り返さなくてはいけないのでマクロ化したいのです。エクセルファイル側のプロシージャを個人用マクロブック側に持たせるのが一番簡単かなと
223 名前:デフォルトの名無しさん [2022/05/26(木) 06:58:26.73 ID:5W+gZAxj0.net] その会社の帳票マクロとやらのファイルを開いてボタン押せるんならSendKeys使えば何とかなるんじゃねーの?(鼻ホジ)
224 名前:デフォルトの名無しさん mailto:sage [2022/05/26(木) 07:56:10.65 ID:JEeygHRrr.net] >>220 工夫するのは上長に100個もある無駄なExcelファイルについて改善を提案すべきじゃね 下手なやつの自動化は害にしかならない それでだめなら自分の責任でこういうやり方していいかとか聞くとかそういう流れにはもうしたんやろ? 外部から呼ぶ214のやり方で無理なら諦めろ 改善して見込める君の給与メリットがそれほどの額じゃないんやろ これ公務員とかならマジで税金の無駄やなw
225 名前:デフォルトの名無しさん (ワッチョイ 7fce-eugl) mailto:sage [2022/05/26(木) 08:40:43 ID:MTu1kK/A0.net] 公務員なんて文系の仕事だから、効率のいいデータ整理やプログラミングができるやつなんてほぼいない しかし理系の人材に役所仕事させるのは税金の浪費以上にもったいない
226 名前:デフォルトの名無しさん (ワッチョイ 8a3d-Td31) mailto:sage [2022/05/26(木) 14:50:09 ID:6r93DwI70.net] >>206 wshでしょっちゅうやってるけど Set fso = Wscript.CreateObject("Scripting.FileSystemObject") CurrentDirectory = fso.getParentFolderName(WScript.ScriptFullName) Set ExApp = Wscript.CreateObject("Excel.Application") ExApp.Visible = True 'エクセル可視/不可視設定 ExApp.DisplayAlerts = False '警告メッセージをオフ Set Wb = ExApp.Workbooks.Open(fso.BuildPath(CurrentDirectory,"Book1.xlsm")) ExApp.Application.Run "Macro1"
227 名前:デフォルトの名無しさん [2022/05/26(木) 15:48:41.66 ID:5fQbWZ9ra.net] 上司に黙ってデータ改竄とかしたら 会社の資産を横領できちまうな
228 名前:デフォルトの名無しさん [2022/05/26(木) 18:34:16.06 ID:MJ/jCOeZ0.net] 農協で30年勤めたOLがやりそうなイメージ。
229 名前:デフォルトの名無しさん [2022/05/26(木) 18:36:23.42 ID:MJ/jCOeZ0.net] 郵便局の場合、昭和のころから歴代の局長が引き継いでそう。 漁協の場合、いくつもの窃盗グループがありそう。 悪いこととは知らなかったって言いそう。
230 名前:デフォルトの名無しさん mailto:sage [2022/05/26(木) 22:05:05.56 ID:KppvSZ/JH.net] 今日いちにち会社で配列に関する記事を読んでましたがここ10年くらいVBAに触れてなかったせいもあり よく理解できないためお力をお借りしたいです。 20万行くらいある空白の無いデータを処理したいのですが、私の書いたコードではどうしても速く処理できません。 F列が「Distribution (PCW; Sales value」とあったらその右のG列の数字を見に行き、3以下ならその行含め下に2行、合計3行削除したいです。 Sub TEST1() Application.ScreenUpdating = False Dim A 'セルの値を配列に格納 A = ActiveSheet.Range("A1").CurrentRegion '配列をループ For i = UBound(A, 1) To 2 Step -1 '「If」で検索 If A(i, 6) = "Distribution (PCW; Sales value)" Then If A(i, 7) <= 3 Then Cells(i, 1).Resize(3, 1).EntireRow.Delete Shift:=xlUp End If End If Next End Sub
231 名前:デフォルトの名無しさん mailto:sage [2022/05/26(木) 22:19:00.22 ID:KppvSZ/JH.net] 一応こんな感じのデータです A列 B列 C列 D列 E列 F列 G列 CTM_ 12Area TM_2022 sku SKU Code Measure TOTAL 4.18- 4.25- 5.2- 5.9- 業態合算 Hokkaido その他 キヨウリツ ゼリ- 4901325124326 Distribution (PCW; Sales value) 8.64 7.03 6.63 9.19 11.70 業態合算 Hokkaido その他 キヨウリツ ゼリ- 4901325124326 Sales Store**** 2,386. 1,830 3,254. 2,244 2,460.5 業態合算 Hokkaido その他 キヨウリツ ゼリ- 4901325124326 Sales Store***** 666 7777 888 4444 7777
232 名前:デフォルトの名無しさん mailto:sage [2022/05/26(木) 22:19:48.67 ID:KppvSZ/JH.net] やっぱりずれた。。。(>_<)
233 名前:デフォルトの名無しさん mailto:sage [2022/05/26(木) 22:28:17.29 ID:dA4WjGxV0.net] >>228 Excelの行を1行1行Deleteするのはどうやっても重くなるから出力用の配列を作るのがいいかな
234 名前:デフォルトの名無しさん mailto:sage [2022/05/26(木) 22:30:55.09 ID:6l5xx5Q8d.net] 配列を使ってんなら配列の中で削除処理しないとそりゃあ意味無いでしょ
235 名前:デフォルトの名無しさん mailto:sage [2022/05/26(木) 22:46:06.64 ID:KppvSZ/JH.net] >>231 >>232 ごもっとです、、(;^_^A 今日は疲れたので明日ちょっと調べて試行錯誤してみます。レスいただきありがとうございました。
236 名前:デフォルトの名無しさん [2022/05/26(木) 23:00:25.66 ID:Wrt5fLCv0.net] いつもやる方法があるけどどのくらい早いのかはよくわからん
237 名前:デフォルトの名無しさん mailto:sage [2022/05/26(木) 23:01:04.69 ID:6l5xx5Q8d.net] ユニークなキー列がもしあればディクショナリー使うのが速いよ まあ難しければ配列でも全然良いけど
238 名前:デフォルトの名無しさん (HK 0Hca-ib4B) mailto:sage [2022/05/26(木) 23:26:48 ID:KppvSZ/JH.net] >>234 少なくとも私のコードよりは速いんじゃないかな。。 15万行を10分以上かかってます(;^_^A >>235 ディクショナリーとは初めて聞きました。でもユニークなキーがありませんでした。。 SKU Codeという商品コードは基本ユニークなんですが3行ずつ同じ商品コードが並んでるんです。。(;^_^A
239 名前:デフォルトの名無しさん (ワッチョイ 768c-aDUG) [2022/05/26(木) 23:42:29 ID:Wrt5fLCv0.net] >>236 じゃあこんな感じで作ったので10分以上がどのくらい早くなったか遅くなったか教えてください。 Sub TEST1() Application.ScreenUpdating = False Dim A 'セルの値を配列に格納 A = ActiveSheet.Range("A1").CurrentRegion '配列をループ For i = UBound(A, 1) To 2 Step -1 Debug.Print i '「If」で検索 If A(i, 6) = "Distribution (PCW; Sales value)" Then If A(i, 7) <= 3 Then Cells(i, 6).Resize(3, 1).Interior.Color = RGB(255, 0, 0) End If End If Next ' ActiveSheet.Range("A1").CurrentRegion.Select Selection.AutoFilter Field:=6, Criteria1:=RGB(255, 0, 0), Operator:=xlFilterCellColor Selection.Offset(1, 0).Resize(Selection.Rows.Count - 1).Select Selection.SpecialCells(xlCellTypeVisible).Select Application.ScreenUpdating = True Selection.Delete 'これはしないで目で確認して手動でDELETEしても良いかも End Sub
240 名前:デフォルトの名無しさん mailto:sage [2022/05/26(木) 23:50:53.02 ID:HeWhwrio0.net] >>228 ・最初にセルの内容をvariantの2次元配列に格納。 ・そのvariantを弄くり倒す。 ・ほしい結果になったvariantを最後に書き戻す。 セルはフォントだの背景色だの罫線だの表上のアドレスだのとにかくいろんな
241 名前:情報がてんこ盛りなので、valueみてりゃいい処理ならできるだけ書き換えない。 [] [ここ壊れてます]
242 名前:デフォルトの名無しさん mailto:sage [2022/05/27(金) 00:18:49.05 ID:JbgC4v+W0.net] あと、蛇足なんだけどソースでやってることそのものをコメントで書いてもあまり意味が…。 '配列をループ For i = UBound(A, 1) To 2 Step -1 とか '「If」で検索 If A(i, 6) = "Distribution (PCW; Sales value)" Then は、いらないのではと。 もひとつ、削除系処理は下からループさせたほうが無難な気がしないでもない。
243 名前:デフォルトの名無しさん mailto:sage [2022/05/27(金) 00:19:25.67 ID:JbgC4v+W0.net] あ。ループは俺の読み間違いだ。ごめんなさない。
244 名前:デフォルトの名無しさん mailto:sage [2022/05/27(金) 00:22:08.18 ID:5SJXPRgg0.net] >>235 Dictionary使うならユニークなキーがなくても行番号をキーに突っ込めば大体応用効くよね アイテムはArrayで格納すればいいし
245 名前:デフォルトの名無しさん mailto:sage [2022/05/27(金) 00:30:45.85 ID:5SJXPRgg0.net] ちなみに行削除は、DeleteTargetRowみたいなRange型の変数を使って、削除対象の行が出たらその変数にUnionしていってまとめて削除、がまだ速いかな
246 名前:デフォルトの名無しさん [2022/05/27(金) 01:16:57.81 ID:+979Xq8C0.net] >>237 自分で15万行のデータで試したらDebug.Print i を外しても遅すぎたので作り直し うちでは5秒でした (Core2Duo E7500 RAM8G win10 Excel2010) 元データのF列に色がないことが条件ですけどね Sub TEST1() Dim startTime As Double: startTime = Timer Application.ScreenUpdating = False Dim A A = ActiveSheet.Range("A1").CurrentRegion For i = UBound(A, 1) To 2 Step -1 If A(i, 6) = "Distribution (PCW; Sales value)" Then If A(i, 7) <= 3 Then Cells(i, 6).Resize(3, 1).Interior.Color = RGB(255, 0, 0) End If End If Next ' Application.ScreenUpdating = True Dim mySheet As Worksheet: Set mySheet = ActiveSheet Dim tempSheet As Worksheet: Set tempSheet = Worksheets.Add Dim myRange As Range: Set myRange = mySheet.Range("A1").CurrentRegion myRange.AutoFilter Field:=6, Operator:=xlFilterNoFill myRange.Offset(1, 0).Resize(myRange.Rows.Count - 1).SpecialCells(xlCellTypeVisible).Copy tempSheet.Range("A1") mySheet.ShowAllData myRange.Clear tempSheet.Range("A1").CurrentRegion.Copy mySheet.Range("A1") Application.DisplayAlerts = False tempSheet.Delete Application.DisplayAlerts = True MsgBox (Timer - startTime & "秒でした") End Sub
247 名前:デフォルトの名無しさん [2022/05/27(金) 02:06:50.25 ID:+979Xq8C0.net] myRange.Offset(1, 0).Resize(myRange.Rows.Count - 1).SpecialCells(xlCellTypeVisible).Copy tempSheet.Range("A1") を下に修正 myRange.SpecialCells(xlCellTypeVisible).Copy tempSheet.Range("A1")
248 名前:デフォルトの名無しさん mailto:sage [2022/05/27(金) 06:53:03.71 ID:0WSlRFUXd.net] >>241 お何か良いアイデアかも 横からだけど使わせて貰おう
249 名前:デフォルトの名無しさん mailto:sage [2022/05/27(金) 06:53:21.55 ID:XEPyrX550.net] >>237 おそら>>243 さんもそうかな? あの後寝てしまい申し訳ありません。 8時くらいになるかと思いますが動かしてみますのでお待ちくださいm(__)m 夜遅くまでどうもありがとうございます!(´;ω;`) >>238 スミマセン、・そのvariantを弄くり倒す。 からもうよくわからないレベルです。。でもありがとうございます。 >>239 基本はネットで拾ったコードを貼っているので、、 でも自分の参考にはなってます笑。 ありがとうございます。 >>241-242 ちょっと時間あるときに勉強してみますね(;^_^A
250 名前:デフォルトの名無しさん mailto:sage [2022/05/27(金) 07:26:42.06 ID:XEPyrX550.net] >>243 えっ!!何が起こったの? こっちも5秒で終わりましたっっ!!!えええぇ信じられないスゴイスゴイ!!!(笑) ちょっと後でゆっくりF8で動かしてみようと思います!!! 本当に助かりました!ありがとうございました!!! (´;ω;`)
251 名前:デフォルトの名無しさん mailto:sage [2022/05/27(金) 07:28:44.47 ID:XEPyrX550.net] >>244 見落としてましたスミマセン。修正してなくてもめちゃくちゃ速く動きましたが こちらも動かしてみますね。ありがとうございました!m(__)m
252 名前:デフォルトの名無しさん mailto:sage [2022/05/27(金) 08:09:16.73 ID:XEPyrX550.net] >>244 のは見出しが消えるのを修正したコードでしたね(;^_^A あと、会社のPCで動かしてみたら2秒もかかりませんでした。 素晴らしいコード、本当にありがとうございましたm(__)m 配列の勉強したいと思います。
253 名前:デフォルトの名無しさん mailto:sage [2022/05/27(金) 08:25:54.12 ID:0WSlRFUXd.net] 質問者の要望事項がクリアだったしサンプルコードや表のイメージを出してくれたから回答がしやすかったと思います 殆どの質問者はそんな事までしないクレクレちゃんだから
254 名前:デフォルトの名無しさん (ワッチョイ c3a5-ib4B) mailto:sage [2022/05/27(金) 08:34:33 ID:XEPyrX550.net] >>250 昔のテンプレに沿った質問の仕方してなかったのでダメ元でしたが 最低限やるべきことはクリアしてたみたいで良かったです。 (*^-^*)
255 名前:デフォルトの名無しさん (ワッチョイ df49-OVn5) mailto:sage [2022/05/27(金) 10:41:33 ID:X2EnXYhx0.net] >>250 これはほんとにそう ふわっと伝えるだけできちんと勝手に書いてくれると思ってるやつの多いこと
256 名前:デフォルトの名無しさん [2022/05/27(金) 11:15:34.63 ID:S0cy91Tb0.net] エクセルで10万行以上とか設計が間違ってる
257 名前:デフォルトの名無しさん mailto:sage [2022/05/27(金) 12:57:26.47 ID:fJfHid2B0.net] 定常業務としてはExcelではやらなくなるにしても、 10万行相手に、最初の試行錯誤をExcelでやってみる というのはよくある話かと。 設計云々はそれが分かってから。
258 名前:デフォルトの名無しさん mailto:sage [2022/05/27(金) 13:09:45.71 ID:X2EnXYhx0.net] ワイの感覚では数百行とかでもExcel脱却したいし、 こんなんSQLと適当なスクリプトですぐ済むやろ Excelになってるから重くなったりしちゃうだけで Accessはしらん みんなExcel万能思想すぎるんだよなあ
259 名前:デフォルトの名無しさん mailto:sage [2022/05/27(金) 13:45:31.62 ID:x8n9vcRZ0.net] 職場で与えられた環境でどうにかしようとすると、 結果的にVBAやバッチファイル、PSスクリプトになる気がする
260 名前:デフォルトの名無しさん mailto:sage [2022/05/27(金) 14:07:07.28 ID:s+hQ4v9CM.net] SQL書けるんだったら そもそも質問主はこのスレに来とらんことに気付かない、 ただのマウンテンゴリラはウセヤガレ
261 名前:デフォルトの名無しさん mailto:sage [2022/05/27(金) 14:16:48.65 ID:pbjQK1XdM.net] VBAもできないからこのスレにいるわけで、間違った道に進む前に正してあげるのは良い
262 名前:デフォルトの名無しさん mailto:sage [2022/05/27(金) 20:25:14.34 ID:e5D1B4Eg0.net] 個人用マクロブックからエクセルのシートのマクロを動かす方法がわかりました。ファィル名をtest.xlsm、シートのボタンに登録してあるマクロをsub test()~end subとして Application.Run"'test.xlsm'!Sheet1.test" これで動きました。Run以下をダブルクォーテーション、ファイル名をシングルクォーテーションで囲むのがポイントです。
263 名前:デフォルトの名無しさん [2022/05/28(土) 02:17:11.31 ID:wx0k8mom0.net] そもそも個人用ってオマ環
264 名前:デフォルトの名無しさん mailto:sage [2022/05/28(土) 03:26:15.21 ID:wx0k8mom0.net] 権限のない新入社員が勝手にマクロ作って社内のデータ壊したらどうなるかわかっているのかな? そのデータほんとに削除していいのですか? 条件ミスって消してはいけないデータ削除してしまったら・・・ やろうと思えばできるけど俺は怖くて自前のマクロなんか動かしたいとは思わんのだがな
265 名前:デフォルトの名無しさん mailto:sage [2022/05/28(土) 03:40:33.21 ID:Yook3X5e0.net] >>261 データいじる前にバックアップしないのか?
266 名前:デフォルトの名無しさん mailto:sage [2022/05/28(土) 05:54:52.90 ID:2n2fc/gL0.net] >>261 間違えてデータを削除するプログラムを書いてしまうなんて普通ありえるのだろうか?AIが暴走するといかんからパソコンやスマホを使うのもやめたほうがいいレベルの発言だな
267 名前:デフォルトの名無しさん mailto:sage [2022/05/28(土) 06:07:09.43 ID:PBRR2XJta.net] >>261 なんでこんなスレ見てるんだ?
268 名前:デフォルトの名無しさん mailto:sage [2022/05/28(土) 08:04:53.73 ID:oqZ/P1Bcr.net] これをループで100個くらいのブックに処理するらしいから漏れのほうが怖いね、ワイ的には 「自動化したから漏れたんだ」とか言われたら今後やりづらくなる
269 名前:デフォルトの名無しさん mailto:sage [2022/05/28(土) 09:48:04.57 ID:PJ5ZLRH80.net] 他の.xlsxのファイルの中身を、新たにExcelの画面を開かずに、 配列などに読み込む方法はありますか? 読み込みたいファイルのレコード数は毎回違うのですが、 可能なのでしょうか
270 名前:デフォルトの名無しさん (スフッ Sdb3-ibZ+) mailto:sage [2022/05/28(土) 09:52:31 ID:SCHew0ynd.net] マクロ4.0 もしくはアドレス直指定 visible=False だと実際は開いてても見えないように出来たんだっけか?
271 名前:デフォルトの名無しさん mailto:sage [2022/05/28(土) 11:35:21.85 ID:4vP5xCiD0.net] aに16進数のABを代入するときは a=&HAB だけど、 aに2進数の100を代入するときはどう書く? a=&B100 だとエラーになるんだが・・・・
272 名前:デフォルトの名無しさん [2022/05/28(土) 11:39:37.94 ID:81XaDMLN0.net] >>263 cd / rm -Rf *
273 名前:デフォルトの名無しさん mailto:sage [2022/05/28(土) 12:20:10.23 ID:XKEF46cS0.net] そも2進数なんてvbaにあったっけ
274 名前:デフォルトの名無しさん mailto:sage [2022/05/28(土) 13:12:36.54 ID:bNMWJIq90.net] 2進数を表すリテラルはないので、16進数や8進数で代用。 変換できればいいのならワークシート関数にある。
275 名前:デフォルトの名無しさん mailto:sage [2022/05/28(土) 13:19:54.56 ID:Yook3X5e0.net] >>268 専用の命令はないことも関数のサンプルもググったらすぐ見つかったが他人を辞書代わりにするつもりとかか?
276 名前:デフォルトの名無しさん [2022/05/28(土) 14:33:33.04 ID:K6Jk35Ar0.net] 旧BASICやアセンブラ扱ってた奴なら 少なくとも1バイト、多ければ2バイトまで表現出来る 2の倍数を覚えてるから無問題
277 名前:デフォルトの名無しさん [2022/05/28(土) 15:36:05.64 ID:wx0k8mom0.net] >>263 初心者が作ったマクロなめんなw
278 名前:デフォルトの名無しさん mailto:sage [2022/05/28(土) 16:00:35.49 ID:gUD13Ggk0.net] マーカー付折れ線グラフで、マーカーの色と透明度を変えるマクロがなんかうまく行かなくて、 折れ線の線種や色、透明度は素直に変更出来ても、 マーカーの色がデフォルトに戻ったり、透明度を変更出来なかった。 マクロの記録を取ると何やら不可解なコードになり、 再実行すると余計なコード?でエラーになったり。 日本語サイトではなかなか解決策を見つけられず、 英語サイトを漁ってみたら、だいぶ昔に整理がなされていた。 なんと、なぜか唐突に「前景色」と「背景色」をセットで指定してから 透明度を指定すると上手くいくんだと。 https://www.andypope.info/tips/tip015.htm 他にも、マーカーのスタイルを最後に指定しないと上手くいかない説(Mac版固有?)とか。 https://forum.ozgrid.com/forum/index.php?thread/78831-set-transparency-of-individual-chart-points-mac/ VBAの中で、グラフの線種やマーカー種類、色のプロパティに対して、 マーカーの体系は取って付けたというか、 なんか入り組んでて把握しにくい。 Excelの歴史の中で、これは後付けだったのかしら?
279 名前:デフォルトの名無しさん mailto:sage [2022/05/28(土) 16:15:07.22 ID:2QSEcnRR0.net] >>274 お前がその新入社員とやらに苦しめられた経験があるのは分かったから、このスレから消えろ。
280 名前:デフォルトの名無しさん mailto:sage [2022/05/28(土) 17:51:43.48 ID:2n2fc/gL0.net] >>274 初心者が作ったマクロで危険度が高いやつの具体例をあげてみて。今日中に書き込みがなければ、その程度とみなすから
281 名前:デフォルトの名無しさん mailto:sage [2022/05/28(土) 19:18:12.47 ID:6Sv+ENTH0.net] タコペッティのユーチューブチャンネルより ・週2日出社、週2日在宅の週4日勤務が最高の働き方だと提唱したい ・週休3日制になったら給料を減らされる??そんな考えだからいつまで経っても貧乏なんだよ... ・【朗報】「在宅勤務OK」の求人、コロナ前と比べて7 7倍に上昇! ・【驚愕】リモートワーク求人が13倍に増加w リモートワークができる人とできない人とでますます格差は広がる... ・【悲報】「会社員に戻りたい!」というフリーランス、全体の3%しかいないw ・【悲報】副業が解禁されても、副業を見つけられずに困窮する会社員が続出... 日頃から副業をやっておくことの重要性を再認識しよう ・【驚愕】5人に1人は本業よりも副業収入の方が多いことが判明w 本業よりも稼げる副業とはなんなのか??
282 名前:デフォルトの名無しさん (ワッチョイ 518e-95+F) [2022/05/28(土) 20:21:06 ID:/6Rfh39q0.net] >>277 幼稚な馬鹿がよく使うマウント取ったと自分で思い込むために使う言葉 何時何分何秒? 今日中に
283 名前:デフォルトの名無しさん mailto:sage [2022/05/28(土) 20:58:43.99 ID:Yook3X5e0.net] >>277 あるとしたらもともと設定してある参照先やリンクや関数とかを知らずに上書きしたうえで保存するとかかね このセルはいじらないでくださいって手作り感のあるコメントとか見たことない?
284 名前:デフォルトの名無しさん mailto:sage [2022/05/28(土) 21:54:10.82 ID:2n2fc/gL0.net] 初心者の作ったマクロに悩まされたエピソードがいくらでも出てくるかと思いきや単なる作り話かい?なめてたのはお前の方だったな
285 名前:デフォルトの名無しさん mailto:sage [2022/05/28(土) 22:12:40.91 ID:IaZrO6TYM.net] 操作を間違うと処理が狂ってUsersの中身を全て消そうとしてくるマクロになら遭遇したことある あとはシンプルにブックやシートの指定をちゃんとしてなくて別に開いてたファイルをメチャクチャにしちゃうとかがまぁよくある可愛い話 あとは別に危険ではないけど新規ブックを作成してそこにマクロを乗せてローカルで実行させるってマクロが 書き込んでくるコードにOption Exli
286 名前:citが含まれてるせいで変数の宣言を強制するにチェックを入れてるとエラー停止するマクロに遭遇した時はおったまげたな [] [ここ壊れてます]
287 名前:デフォルトの名無しさん mailto:sage [2022/05/28(土) 22:16:27.20 ID:Yook3X5e0.net] >>281 ?
288 名前:デフォルトの名無しさん [2022/05/28(土) 22:31:28.88 ID:K6Jk35Ar0.net] 初心者でよくあるのは 「すみまdーん、先輩、SQLのDELETE文の発行部分でWHERE区付け忘れてデータ全部消しちゃいましたー」って奴かな もちろんUPDATE区の場合もある。 当然、UT環境でテストする前だからそうそう致命的になることはないけど その環境で同時期にテストしてた人達には平謝り、最低1日分のテストデータ作り直しになったりして白い目で見られるようになったりはするな。
289 名前:デフォルトの名無しさん mailto:sage [2022/05/28(土) 22:53:19.43 ID:OmoOa5jA0.net] すみまdーんで吹いた
290 名前:デフォルトの名無しさん (ワッチョイ 915f-yO3c) mailto:sage [2022/05/28(土) 23:22:53 ID:ns5NBh1I0.net] >>261 テスト・・・・ って概念無いの?
291 名前:デフォルトの名無しさん (ワッチョイ 915f-yO3c) mailto:sage [2022/05/28(土) 23:33:20 ID:ns5NBh1I0.net] >>263 本気でsuしたあとに cd / rm -fr \* の現場なら見た。悲惨だった。ずいぶん昔だけど、Unixの世界は無情だったな. xxx ってユーティリティー供給した人がシェルスクリプト間違えて rm -fr /usr/xxx/* ってやるところに空白入れて rm -fr /usr /xxx/* ってやって/usr/以下全滅ってのもあったな それでも、「なんかあったら責任取れるのか??。却下却下!!!」的な阿呆にはなりたくないよな。 その方針だと石器時代にすら進めんわ。
292 名前:デフォルトの名無しさん mailto:sage [2022/05/29(日) 00:01:38.67 ID:cc4+tff/0.net] マクロのブック自体を保存する処理なんか入れてて、しょうもない状態で保存しちゃってたのは見たな 結局以前のバージョンから戻してたけど
293 名前:デフォルトの名無しさん mailto:sage [2022/05/29(日) 00:54:19.29 ID:AvSqkoWo0.net] ここにいる的確な回答する人って絶対他の言語やってるよなって思う
294 名前:デフォルトの名無しさん mailto:sage [2022/05/29(日) 01:15:45.22 ID:Tyr7S/P60.net] いや、単にExcel歴30年以上とかのベテランでょ
295 名前:デフォルトの名無しさん mailto:sage [2022/05/29(日) 03:05:24.56 ID:IyXpp6fQ0.net] Excel歴10年以上あると、「あ。これExcel単体じゃ無理だけど、Excelを呼ぶシェルから呼べば秒」って場面ないかな?
296 名前:デフォルトの名無しさん mailto:sage [2022/05/29(日) 03:06:21.80 ID:5DW63Q/F0.net] 初心者と経験者との間にはかなりの差があるのは確か
297 名前:デフォルトの名無しさん mailto:sage [2022/05/29(日) 06:13:59.41 ID:1Frm/WJwa.net] >>286 テストのつもりが間違って本番環境に接続しててぶっ壊す例なんていくらでもあるだろw
298 名前:デフォルトの名無しさん mailto:sage [2022/05/29(日) 07:36:30.39 ID:6qc9k+Up0.net] >>293 だから具体的な例をあげてみてよ。 想像でものを語るな
299 名前:デフォルトの名無しさん mailto:sage [2022/05/29(日) 07:46:58.86 ID:5POrq48Ha.net] 相当具体的だと思うが? 接続文字列の内容を知りたいとかか?w
300 名前:デフォルトの名無しさん (ワッチョイ e1ac-A9Gv) mailto:sage [2022/05/29(日) 08:04:47 ID:cc4+tff/0.net] あーコピペしてそれをループすればいいと思ったのか N+1みたいなの書いてmax connectionsかなんかでDBに接続できなくしたのもいたなあ
301 名前:デフォルトの名無しさん (ワッチョイ 934f-XmKI) [2022/05/29(日) 08:21:24 ID:Mw5w5FDK0.net] >>293 確かにあるあるだけど 初心者に本番環境弄らせることはまずない そんなこさせる会社や現場は既に破綻している
302 名前:デフォルトの名無しさん (ワッチョイ 9342-HoF8) mailto:sage [2022/05/29(日) 08:33:34 ID:TXsSTtjO0.net] あるあるだけどまずないってどっちだよ
303 名前:デフォルトの名無しさん (ワッチョイ d968-uCuR) mailto:sage [2022/05/29(日) 08:41:22 ID:3FlTI83O0.net] たまによくあるの親戚
304 名前:デフォルトの名無しさん mailto:sage [2022/05/29(日) 10:12:00.37 ID:6qc9k+Up0.net] 初心者はVBAどころか関数使うのも生意気とされる職場もあるからな。電卓で計算して結果を表に手入力してるようなとこだと
305 名前:デフォルトの名無しさん mailto:sage [2022/05/29(日) 12:04:43.00 ID:g2O32ybKa.net] >>297 > 初心者に本番環境弄らせることはまずない お前さんの経験値が低いだけかと > そんなこさせる会社や現場は既に破綻している そうだね、でもあるという事実は変わらんけどね
306 名前:デフォルトの名無しさん mailto:sage [2022/05/29(日) 12:08:27.47 ID:+JwoCmYYD.net] そこマウント取ってどうするの?って話題で盛り上がるよねこのスレ
307 名前:デフォルトの名無しさん mailto:sage [2022/05/29(日) 12:18:30.79 ID:6qc9k+Up0.net] 質問スレなんて基本的に初心者の来る場所なのに、そこで初心者はマクロ使うなと言われてもね
308 名前:デフォルトの名無しさん [2022/05/29(日) 12:25:41.24 ID:G+XUYeIa0.net] VBAがExcel内の機能しか扱えないよう制限された設計になってるのならわかるが 実際にはファイルやデータベース操作、 やろうと思えばHTTP通信やUI Automationだって「できてしまう」以上、 危険な挙動は常に発生しうるでしょ
309 名前:デフォルトの名無しさん mailto:sage [2022/05/29(日) 12:29:48.36 ID:Orp1XQOd0.net] 表の左にラジオボタンを配置、表をリボンのフィルタ機能で絞り混むと、ラジオボタンが大集合してしまう。 これを何とかしようとセル移動しても一緒に移動しない設定にしたら今度は絞るとラジオボタンが残ったままになる。 フィルタで絞ったところの左のボタンだけ表示させる方法教えてください。
310 名前:デフォルトの名無しさん mailto:sage [2022/05/29(日) 12:30:57.02 ID:+JwoCmYYD.net] しうるから使うなではなく、 使うなら気を付けろでいい話でしょ 本人のやらかしの責任を負うわけではないんだしさ なんならVBAもしくはム全般でのやらかしスレでも作ってそこでやる?
311 名前:デフォルトの名無しさん mailto:sage [2022/05/29(日) 12:36:51.39 ID:+JwoCmYYD.net] >>305 ここで聞くとスレタイにちなんだ回答になるけど良い?
312 名前:デフォルトの名無しさん (ワッチョイ 1359-Qyq5) mailto:sage [2022/05/29(日) 12:50:30 ID:Orp1XQOd0.net] >>307 先生お願いします!
313 名前:デフォルトの名無しさん mailto:sage [2022/05/29(日) 13:49:12.25 ID:82tDbVM80.net] >>303 何という結論 笑
314 名前:デフォルトの名無しさん mailto:sage [2022/05/29(日) 14:16:13.78 ID:43IRGv4Ka.net] てか、初心者云々は別にしてマクロ書かない人が来るスレじゃないでしょ
315 名前:デフォルトの名無しさん mailto:sage [2022/05/29(日) 14:22:21.96 ID:Tyr7S/P60.net] どんな層がきてるのかな? 事務員さんばかり?
316 名前:デフォルトの名無しさん [2022/05/29(日) 14:27:51.93 ID:Ocf930r70.net] ハゲて層な人かへ来ています
317 名前:デフォルトの名無しさん [2022/05/29(日) 14:28:07.01 ID:Ocf930r70.net] ハゲて層な人が来ています
318 名前:デフォルトの名無しさん mailto:sage [2022/05/29(日) 14:47:38.40 ID:tM27peK8d.net] むしろ剛毛で困ってるstep 3でdeleteしたいわ
319 名前:デフォルトの名無しさん [2022/05/29(日) 18:08:08.67 ID:Mw5w5FDK0.net] >>301 そうか 破綻したブラック企業に勤めているのか 大変だな
320 名前:デフォルトの名無しさん mailto:sage [2022/05/29(日) 18:28:41.40 ID:hxkiJ2jHa.net] >>315 もう定年退職したけどうちの会社は普通に存続してるけど? いろいろな部署があることも知らないとか零細にお勤めなのかな?w
321 名前:デフォルトの名無しさん mailto:sage [2022/05/29(日) 18:47:14.53 ID:Tyr7S/P60.net] 禿と白髪だらけってどっちが印象悪い?
322 名前:デフォルトの名無しさん [2022/05/29(日) 18:53:36.06 ID:Ocf930r70.net] ハゲです
323 名前:デフォルトの名無しさん [2022/05/29(日) 19:01:01.21 ID:5/KWOkVq0.net] >>317 眉毛なし
324 名前:デフォルトの名無しさん mailto:sage [2022/05/29(日) 19:43:11.20 ID:EFc1zn8HM.net] エージェント47の見た目が悪いようには見えないからハゲはセーフです
325 名前:デフォルトの名無しさん (アウアウウー Sac5-AEoY) mailto:sage [2022/05/29(日) 20:10:27 ID:AWvveSwHa.net] それはいつもの「ただしイケメンは除く」って奴だからお前らはアウトだよ
326 名前:デフォルトの名無しさん mailto:sage [2022/05/30(月) 08:08:23.93 ID:OyYzutpm0.net] 白人様ならスキンヘッドが似合うから許す
327 名前:デフォルトの名無しさん mailto:sage [2022/05/30(月) 08:22:04.62 ID:5eMIb3Vrd.net] イッピーカイエー、マザファッカー
328 名前:デフォルトの名無しさん mailto:sage [2022/05/30(月) 08:49:54.54 ID:6bPCzkava.net] Excelできるヤツは禿が多い噂
329 名前:デフォルトの名無しさん mailto:sage [2022/05/30(月) 10:02:36.84 ID:9WWLvtDBM.net] なんでわかった?
330 名前:デフォルトの名無しさん mailto:sage [2022/05/30(月) 10:14:24.43 ID:Yd1KWPfN0.net] ……君のような勘のいいガキは嫌いだよ
331 名前:デフォルトの名無しさん mailto:sage [2022/05/30(月) 10:46:02.07 ID:111npCAX0.net] ハゲに関する英国法廷の判決と Calling a man ‘bald’ is sex-related harassment, employment tribunal rules (男性を「ハゲ」と呼ぶのはセクハラ、雇用法廷の裁定) https://www.theguardian.com/world/2022/may/13/calling-a-man-bald-is-sexual-harassment-employment-tribunal-rules 米イェール大法学部教授の反論 It’s Not Sexual Harassment to Call Someone ‘Bald’ (誰かを「ハゲ」と呼ぶのはセクシャルハラスメントではない) https://www.bloomberg.com/opinion/articles/2022-05-17/calling-someone-bald-is-not-sexual-harassment 後者の日本語訳論 https://courrier.jp/news/archives/288609/ スレチ、お粗末。
332 名前:デフォルトの名無しさん (ワッチョイ 93ad-zgJ4) mailto:sage [2022/05/30(月) 11:31:07 ID:pTyzyEGo0.net] ユーザーフォーム上のボタンをクリックすると、 Private Sub CommandButton1_Click() End Sub のように挿入されますが、この挿入位置には法則性はありますか?
333 名前:デフォルトの名無しさん (ワッチョイ 2bda-PinD) mailto:sage [2022/05/30(月) 12:13:30 ID:OyYzutpm0.net] じゃあ今度からこのスレのみんなの事を禿って呼んでええか?
334 名前:デフォルトの名無しさん (ワッチョイ 09ce-yO3c) mailto:sage [2022/05/30(月) 12:20:22 ID:wDXjGZuh0.net] 俺はExcel全然できないんだけど
335 名前:デフォルトの名無しさん (ワッチョイ 9917-rAsz) mailto:sage [2022/05/30(月) 12:20:41 ID:Yd1KWPfN0.net] 毎回豊田真由子口調で言うなら許す
336 名前:デフォルトの名無しさん mailto:sage [2022/05/30(月) 13:30:00.03 ID:0Z9/8mJh0.net] >>328 自分で試すことってできませんか?
337 名前:デフォルトの名無しさん mailto:sage [2022/05/30(月) 14:03:07.86 ID:OgQlhvU6M.net] この、は♥げ♥
338 名前:デフォルトの名無しさん mailto:sage [2022/05/30(月) 14:03:43.38 ID:OgQlhvU6M.net] >>328 あります
339 名前:デフォルトの名無しさん [2022/05/30(月) 16:13:01.26 ID:ytFfApAu0.net] STAP細胞はありますか?
340 名前:デフォルトの名無しさん [2022/05/30(月) 16:27:46.26 ID:Z6OL71NLa.net] >>330 https://www.youtube.com/watch?v=VctFTEm1XTE
341 名前:デフォルトの名無しさん (ワッチョイ 93ad-zgJ4) mailto:sage [2022/05/30(月) 19:45:13 ID:pTyzyEGo0.net] 何か変な奴が増えたな。 前はまともな回答が得られたんだけど。 無職か
342 名前:デフォルトの名無しさん mailto:sage [2022/05/30(月) 22:28:34.36 ID:U5Ze+/Ia0.net] このハゲー
343 名前:デフォルトの名無しさん mailto:sage [2022/05/31(火) 05:25:49.12 ID:qZPc3K6R0.net] この禿げぇぇぇ!!
344 名前:デフォルトの名無しさん mailto:sage [2022/05/31(火) 12:16:40.12 ID:e8W8kp4L0.net] 剃ってますが、何か?
345 名前:デフォルトの名無しさん mailto:sage [2022/05/31(火) 15:23:45.24 ID:qZPc3K6R0.net] ツルッツル!
346 名前:デフォルトの名無しさん mailto:sage [2022/05/31(火) 17:25:59.49 ID:1k2p4OCO0.net] 頭が守られなくなるから剃らない方がいいのに
347 名前:デフォルトの名無しさん mailto:sage [2022/05/31(火) 23:09:32.48 ID:rnWQ7LEg0.net] サマータイムめんどくせぇな… 今サマータイムかどうか表示したいんだけど誰か式作って笑 VBAでも数式でもどっちでもOK
348 名前:デフォルトの名無しさん mailto:sage [2022/05/31(火) 23:14:34.97 ID:0qvYGG5m0.net] サマータイムは国によって違うし年によっても違う あと自分で作らなくてもあるからぐぐれ
349 名前:デフォルトの名無しさん mailto:sage [2022/06/01(水) 10:31:55.12 ID:LqJbFkjG0.net] ググるでググれ 何回言われたか
350 名前:デフォルトの名無しさん mailto:sage [2022/06/01(水) 18:42:16.08 ID:4MDL/f8zd.net] 2022年のサマータイムはいつから? 【開始】2022年3月27日(日)午前1時 → 午前2時へ1時間進める【終了】2022年10月30日(日)午前2時 → 午後1時へ1時間戻す(遅らせる)※スイスはUT1の国なので、上記時間にプラス1時間足した時間を基準とする。 ぐぐったらこれがでてきたからこれで計算すればいいのでは
351 名前:デフォルトの名無しさん mailto:sage [2022/06/02(木) 01:00:25.06 ID:ww3inSB20.net] VBAでやる意味がわからん
352 名前:デフォルトの名無しさん [2022/06/02(木) 11:08:01.45 ID:MPFVtYTLa.net] >>342 +1 いろんなものにぶつけやすいよなωωωωωωωωω
353 名前:デフォルトの名無しさん (ワッチョイ 992f-SJsm) [2022/06/02(木) 13:37:12 ID:wjg1CkCV0.net] 会社ではVBAしか使わしてくれんのじゃ。 アルツハイマーでもこれくらい分かる。
354 名前:デフォルトの名無しさん mailto:sage [2022/06/03(金) 01:37:10.45 ID:d1WjLs5X0.net] 時刻の書かれたセルの編集するのか?
355 名前:デフォルトの名無しさん (スップ Sdb3-95+F) [2022/06/03(金) 02:52:19 ID:mOQ1024Gd.net] >>350 その程度の発想しか出来ない人は書き込みしなければいいのに
356 名前:デフォルトの名無しさん mailto:sage [2022/06/03(金) 05:47:43.61 ID:d1WjLs5X0.net] >>351 自力でサマータイム求められない奴に言えよ
357 名前:デフォルトの名無しさん mailto:sage [2022/06/03(金) 07:19:45.45 ID:XQuJ+afhD.net] >>352 このスレの多くの人が当てはまってしまう
358 名前:デフォルトの名無しさん (ブーイモ MMab-yO3c) mailto:sage [2022/06/03(金) 11:29:40 ID:pHjmbkhpM.net] 夏が来れば思い出す
359 名前:デフォルトの名無しさん mailto:sage [2022/06/03(金) 15:31:03.54 ID:726WZH160.net] サマーソルトキック
360 名前:デフォルトの名無しさん mailto:sage [2022/06/04(土) 05:59:25.84 ID:nF/95LMud.net] 海外ネトゲでサマータイムに苦しめられてるから VBAじゃないけどC#でちっこいの作ったわ
361 名前:デフォルトの名無しさん mailto:sage [2022/06/04(土) 06:14:22.15 ID:nF/95LMud.net] Application.OnTime 使えば、一分ごとに表示変えるとかできるね あとは面倒だけどサマータイムに入る日時と出る日時計算する関数作って・・と
362 名前:デフォルトの名無しさん mailto:sage [2022/06/04(土) 07:08:46.25 ID:wpuL0IDQD.net] サマータイムこれから実装なんて何回車輪の再発明するつもりだろう
363 名前:デフォルトの名無しさん mailto:sage [2022/06/04(土) 14:35:11.71 ID:2NGB/tgF0.net] >>356 やってることruby厨と一緒だな
364 名前:デフォルトの名無しさん (ワッチョイ 1a3d-Xy6N) mailto:sage [2022/06/04(土) 15:02:27 ID:a2v34LYj0.net] VBAで自分自身のファイル名を持ってくる場合て、 エクセルVBAなら Debug.Print ThisWorkbook.Name パワポVBAなら Debug.Print ActivePresentation.Name だけど、 そもそも自分がエクセルなのかパワポなのかを判断することてできる。ActiveDocument
365 名前:デフォルトの名無しさん mailto:sage [2022/06/04(土) 16:08:31.18 ID:a2v34LYj0.net] Excelとワードで同じVBAを流してみたんですが、挙動が異なる。 これってバグ? https://i.imgur.com/oKs1K0l.jpg office2013です。 Set myDocument = ActiveDocument 'Set myDocument = ActiveSheet x = 110: y = 10: r = 100: h = 100 a = 0.3 Set shp = myDocument.Shapes.AddShape(msoShapeArc, x, y + r * (1 - a), r, r * a) With shp .Adjustments.Item(1) = -180 .Adjustments.Item(2) = 180 .Line.DashStyle = msoLineDash .Line.Weight = 2 End With Set shp = myDocument.Shapes.AddShape(msoShapeArc, x, y, r, r) With shp .Adjustments.Item(1) = -180 .Adjustments.Item(2) = 180 .Line.DashStyle = msoLineSolid .Line.Weight = 2 End With
366 名前:デフォルトの名無しさん mailto:sage [2022/06/04(土) 16:13:58.10 ID:tUjUVaiz0.net] >>361 単に円の中心をどこにおいて描画するかって違いでしょ 仕様としか
367 名前:デフォルトの名無しさん mailto:sage [2022/06/04(土) 18:56:04.34 ID:a2v34LYj0.net] >>362 確かに違う。 でも、なぜWordとExcelで仕様を変える必要がある? どっかに明記してあったけ?
368 名前:デフォルトの名無しさん mailto:sage [2022/06/04(土) 19:07:16.56 ID:tUjUVaiz0.net] >>363 考え方が逆 エクセルとワードのオブジェクトが全然別物なのに、vbaのコードが似てる事が奇跡なんだよ 俺からすれば、よくぞ無修正で動いてるなってのが素直な感想。結果が同じなんて微塵も期待しない エクセルvbaをワードvbaに移植しようなんてそもそも思わない
369 名前:デフォルトの名無しさん mailto:sage [2022/06/04(土) 21:44:29.71 ID:a2v34LYj0.net] >>360 自己解決した。 Application.Caption でなんとなくわかる
370 名前:デフォルトの名無しさん [2022/06/04(土) 22:59:19.25 ID:6tY8trDcd.net] >>365 馬鹿は日記を書くな Application.Versionだろうが
371 名前:デフォルトの名無しさん mailto:sage [2022/06/05(日) 00:15:07.27 ID:LBKd1m9qd.net] ファイル名がわかってるんなら拡張子を見れば?
372 名前:デフォルトの名無しさん [2022/06/05(日) 05:39:30.94 ID:exW/DWN40.net] どっちも極端 Objectが別物だって理解していれば 使い回しが効く部分は使いまわせる EXCEL VBAの使える部分をACCESSで使ったり VBSの挙動確認のためにEXCELのVBAに 落とし込むなんてザラにあること。
373 名前:デフォルトの名無しさん mailto:sage [2022/06/05(日) 06:24:20.21 ID:VDGjTDhq0.net] >>366 バカはお前だろ。 Application.Versionで何が区別がつく。 全部同じ値だ。
374 名前:デフォルトの名無しさん mailto:sage [2022/06/05(日) 07:45:08.95 ID:vTlNlLry0.net] バカって言う方がバカなんですーの典型的な例
375 名前:デフォルトの名無しさん [2022/06/05(日) 09:11:03.70 ID:VKHbv3il0.net] ハゲって言う方がハゲなんですーもよく当てはまる例
376 名前:デフォルトの名無しさん mailto:sage [2022/06/05(日) 09:42:13.57 ID:GrqOyp5w0.net] いいから仲良くしろください
377 名前:デフォルトの名無しさん mailto:sage [2022/06/05(日) 10:32:25.90 ID:5rczsPhbD.net] セルの書式を配列に保存しておきたい場合、 Rangeオブジェクトの配列を使わなきゃダメですか
378 名前:デフォルトの名無しさん mailto:sage [2022/06/05(日) 10:55:59.24 ID:vTlNlLry0.net] 設定の情報を文字列化すればstring型でもいけるんじゃないかな? 保存したい情報が複数あるならカンマで結合してsplitで取り出せば良いだけだし
379 名前:デフォルトの名無しさん mailto:sage [2022/06/05(日) 11:47:56.31 ID:eL6jNkf4d.net] 表示形式と背景色なら文字列にできるけど、書式って文字列に変換可能か? 罫線って文字列で取れたっけ
380 名前:デフォルトの名無しさん mailto:sage [2022/06/05(日) 13:43:06.66 ID:vTlNlLry0.net] 罫線の有無をTrue/Falseで判定すればいけない?
381 名前:デフォルトの名無しさん mailto:sage [2022/06/05(日) 14:12:04.89 ID:MGWqyCtZ0.net] >>375 > 罫線って文字列で取れたっけ 数値(列挙値)で取れるんだからテキトーに文字列化すればいいやん >>376 太さ、線種(鎖線とか)や色もあるから
382 名前:デフォルトの名無しさん mailto:sage [2022/06/05(日) 14:15:50.06 ID:x/GFG4oyM.net] 罫線はRangeオブジェクト(のプロパティ)ではなくてBorderオブジェクト
383 名前:デフォルトの名無しさん [2022/06/05(日) 15:54:50.02 ID:udiiYXiVa.net] // n = 1, 2, 3 or 4 b = sheet.Cells(r, c).Borders(n) b.Weight 代入&参照 b.LineStyle 代入&参照
384 名前:デフォルトの名無しさん mailto:sage [2022/06/05(日) 16:38:39.08 ID:MGWqyCtZ0.net] >>379 斜め線もあるしそもそもXlBordersIndexは1〜4じゃないぞ https://docs.microsoft.com/ja-jp/office/vba/api/excel.xlbordersindex
385 名前:デフォルトの名無しさん mailto:sage [2022/06/05(日) 20:07:10.90 ID:dqA2RGZhd.net] 結局Rangeで格納した方が早いわな 配列が嫌ならコレクションとかでも行けるけど
386 名前:デフォルトの名無しさん mailto:sage [2022/06/05(日) 20:27:14.52 ID:GrqOyp5w0.net] 書式を保存するシートを別に作っておいたほうが楽じゃない?
387 名前:デフォルトの名無しさん (ワッチョイ 86da-fOeb) mailto:sage [2022/06/05(日) 23:49:37 ID:YrlocrIV0.net] 禿達ってなんですぐ喧嘩になるの? お互い譲り合えば良いじゃん。
388 名前:デフォルトの名無しさん (ワッチョイ 892f-M86+) [2022/06/06(月) 00:12:23 ID:RB7fKeqq0.net] おたがいハゲましあっていますよ
389 名前:デフォルトの名無しさん (スップ Sdea-jate) [2022/06/06(月) 00:18:34 ID:fgz41eYud.net] >>383 みるみる毛が減るようになればわかるよ
390 名前:デフォルトの名無しさん mailto:sage [2022/06/06(月) 01:40:02.35 ID:CD+x4MGM0.net] 禿鷹のくせに
391 名前:デフォルトの名無しさん mailto:sage [2022/06/06(月) 01:45:08.65 ID:LVkl0QQt0.net] そこをなんとか、Excelでwebview2を使うことは出来ませんか?
392 名前:デフォルトの名無しさん [2022/06/06(月) 03:13:52.17 ID:fgz41eYud.net] >>386 馬鹿にするな!うっすらとまだ残っているわ!
393 名前:デフォルトの名無しさん [2022/06/06(月) 05:44:12.69 ID:RB7fKeqq0.net] >>388 このハゲ!
394 名前:デフォルトの名無しさん mailto:sage [2022/06/06(月) 10:06:09.33 ID:JILrjNOSM.net] >>387 無理、素直に.net使え
395 名前:デフォルトの名無しさん mailto:sage [2022/06/06(月) 13:21:31.23 ID:4DEc3eXi0.net] >>383 > お互い譲り合えば良いじゃん。 「ネコと和解せよ」 https://youtu.be/52fdqGMawwc (逆再生という指摘もあるが・・・)
396 名前:デフォルトの名無しさん mailto:sage [2022/06/07(火) 22:41:43.65 ID:mgVGi2C30.net] 'Word,Excel,Powerpointどれでも動くようにする Select Case True Case Application.Caption = "Word" Set myDocument = ActiveDocument Case InStr(Application.Caption, "Excel") > 0 Set myDocument = ActiveSheet Case Else Set myDocument = ActivePresentation.Slides(1) End Select 'あとはmyDocument.なんとかで操作すればどれでも動く。
397 名前:デフォルトの名無しさん [2022/06/08(水) 00:49:01.93 ID:cIjXs1I0d.net] >>392 馬鹿の日記はお断り
398 名前:デフォルトの名無しさん [2022/06/08(水) 00:54:12.05 ID:jfy5wCdsM.net] ハゲの日記なら大丈夫?
399 名前:デフォルトの名無しさん [2022/06/08(水) 00:55:55.27 ID:cIjXs1I0d.net] 今日は毛が341本抜けました とか読みたい?
400 名前:デフォルトの名無しさん [2022/06/08(水) 01:01:21.01 ID:cIjXs1I0d.net] 唐突ですが、30歳を過ぎて頭皮を去っていく髪の毛が増えてきました。 今までは粘着力の強いコロコロで定期的に取っていましたが、これが厄介で、頭からからは簡単に抜けるくせにカーペットからはなかなか離れようとしません。 また、いくら自分の髪とはいえ、毛の大群がまとわりついたコロコロを剥がすあの瞬間が最高に嫌いでした。 勿体無いかな…でも欲しいな…など思いつつダ〇ソンのハンディタイプを買おうと迷った事もありましたが、1/5のお値段で高評価のこちらの商品でとりあえず様子見することに。外箱が思っていたよりもかなり小さく、最初は失敗したかと思いましたが、開けてみると質感も良く、これなら部屋のどこに置いても邪魔にならなそうです。 そして肝心の吸引力ですが、あんなにコロコロで取れなかった脱走兵どもが綺麗に吸い込まれていくではありませんか! ついでにいつぞやの晩酌の際に食べこぼしたクルミの欠片など、多少大きさのある物でも綺麗に吸い込んでくれます。もしかしたらダ〇ソンはもっと強力に吸ってくれるのかもしれませんが、私と同じような悩みをお持ちの方でしたら、これで十分でしょう。アタッチメントも布団用や狭いところ用のものもついていますので便利です。 もういっそ
401 名前:、頭に直接この掃除機をかけた方が早いんじゃないかと思ってしまう程です。 [] [ここ壊れてます]
402 名前:デフォルトの名無しさん mailto:sage [2022/06/08(水) 02:36:31.18 ID:3hgKnM3d0.net] ち○毛や脇の下まで薄くなった俺は??
403 名前:デフォルトの名無しさん [2022/06/08(水) 07:20:52.11 ID:fAskgOC50.net] ここはHGのあつまりでつね
404 名前:デフォルトの名無しさん mailto:sage [2022/06/08(水) 08:24:09.17 ID:0P23HUlSM.net] MGかPGが良いなぁ
405 名前:デフォルトの名無しさん mailto:sage [2022/06/08(水) 09:48:44.91 ID:pnJSpG8Od.net] はげもげぱげ
406 名前:228 mailto:sage [2022/06/08(水) 17:24:59.25 ID:C2b/Gc96H.net] 以前こちらでお世話になったものですが、うまくファイルに転記できないためまたお力をお借りしにきました。。 2つのブックがあって、別のブックにエリアごと(B列で判定)のデータをぺたぺた貼って保存すればOKなんですが 元データが10万行くらいあって、なぜかブックはエリアごとに保存は出来るのですが、あるはずの半分くらいのデータしかコピペできてないのです。 コピペで切り貼りしたコードで見づらいくて申し訳ありませんが、おかしいところがあれば教えていただけないでしょうか??(H列が最右の列でTOTALにあたります) ■データのイメージ 延々と下に10万行くらいあります。 A列 B列 C列 D列 TOTAL 業態合算 全国 その他 OTHERS オキナワモ モリナガヨ-ゴ P473ML 4960405664923 Distribution (PCW; Sales value) 0.01 業態合算 全国 その他 OTHERS オキナワモ モリナガヨ-ゴ P473ML 4960405664923 Market size (Value) 339,651.60 業態合算 全国 その他 OTHERS オキナワモ モリナガヨ-ゴ P473ML 4960405664923 Sales per store selling item (Unit) x1,000 5,744.20 業態合算 全国 その他 OTHERS オキナワモ モリナガヨ-ゴ P473ML 4960405664923 Sales per store selling item (Value) x1,000 573,148.54 業態合算 全国 その他 OTHERS オキナワモ モリナガヨ-ゴ P946ML 4960405664947 Distribution (PCW; Sales value) 0.05 業態合算 全国 その他 OTHERS オキナワモ モリナガヨ-ゴ P946ML 4960405664947 Market size (Value) 697,424.54 業態合算 全国 その他 OTHERS オキナワモ モリナガヨ-ゴ P946ML 4960405664947 Sales per store selling item (Unit) x1,000 6,850.74 業態合算 全国 その他 OTHERS オキナワモ モリナガヨ-ゴ P946ML 4960405664947 Sales per store selling item (Value) x1,000 871,208.64 業態合算 東海 大容量 PKS SOYBIO ソイビオトウニユウY プレ-ンムトウKP400 4589850822179 Distribution (PCW; Sales value) 41.70 業態合算 関東 大容量 PKS SOYBIO ソイビオトウニユウY プレ-ンムトウKP400 4589850822179 Market size (Value) 197,839,014.22
407 名前:デフォルトの名無しさん mailto:sage [2022/06/08(水) 17:26:49.54 ID:C2b/Gc96H.net] コードです 長いので分けます Sub Export_ExcelFile() '変数の定義 Dim Wb1 As Worksheet, Wb2 As Workbook, FileNam As String Dim xPath As String Dim key As String Dim i As Integer Dim Sh1 As Worksheet Dim Sh2 As Worksheet Application.ScreenUpdating = False 'ワークシートを指定する Set Sh1 = ThisWorkbook.Worksheets("Sheet1") 'データの始まり2行目を指定 Dim start As Long start = 2 Set Wb1 = ActiveSheet '元シートをActiveSheetにセットする '出力先のパスを指定 With ActiveWorkbook xPath = .Path & "\" 'ファイルが置いてあるフォルダからのパスを指定 End With
408 名前:デフォルトの名無しさん mailto:sage [2022/06/08(水) 17:27:20.86 ID:C2b/Gc96H.net] 'エリアが空欄の位置までループ Do While Sh1.Cells(start, 2) <> "" Set Wb2 = Workbooks.Add ' 新規ブック作成 Set Sh2 = Wb2.Worksheets("Sheet1") '新規ブックのシートを指定 'ファイル名に付ける日付を取得 Dim strDate As String strDate = DateSerial(Year(Now), Month(Now), Day(Now)) strDate = Format(strDate, "yyyymmdd") 'Excelファイル出力 FileNam = xPath & Sh1.Cells(start, 2).Value & "" & strDate & ".xlsx" 'コピー元の最初のエリア名を取得 key = Sh1.Cells(start, 2).Value '同じエリア名が続く間はループ Sh1.Activate Do While Sh1.Cells(start, 2).Value = key 'データ行に色をつける Cells(start, 7).Resize(1, 1).Interior.Color = RGB(255, 0, 0) 'Cells(i, 7).Resize(1, 1).Interior.Color = RGB(255, 0, 0) i = i + 1 'コピー先の行を一つ下にずらす。 start = start + 1 'コピー元のエリア名行を一つ下にずらす。 Loop
409 名前:デフォルトの名無しさん mailto:sage [2022/06/08(水) 17:27:41.62 ID:C2b/Gc96H.net] Dim mySheet As Worksheet: Set mySheet = ActiveSheet '赤く塗られた行をソートしてコピペする Dim myRange As Range: Set myRange = mySheet.Range("A1").CurrentRegion myRange.AutoFilter Field:=7, Criteria1:=RGB(255, 0 _ , 0), Operator:=xlFilterCellColor myRange.SpecialCells(xlCellTypeVisible).Copy Sh2.Activate Range("A1").Select ActiveSheet.Paste Sh2.Range("G:G").Interior.Pattern = xlNone mySheet.ShowAllData Sh1.Range("G:G").Interior.Pattern = xlNone '分割したファイルを保存して閉じる Wb2.SaveAs Filename:=FileNam ' 同一フォルダに保存して閉じる Wb2.Close '分割ファイルのブックを解放 Set Wb2 = Nothing Loop Application.ScreenUpdating = True MsgBox "終わったよ" End Sub
410 名前:デフォルトの名無しさん mailto:sage [2022/06/08(水) 17:31:00.27 ID:C2b/Gc96H.net] 元データを少なくして全部で50行くらいにしたら上手くファイルを分けて保存出来てたんですが、、、 もし問題点がお分かりになる方いらっしゃったらよろしくお願いしたいです(>_<)
411 名前:デフォルトの名無しさん [2022/06/08(水) 18:24:26.53 ID:38a4SNrC0.net] integerの最大っていくつまでだっけ?
412 名前:デフォルトの名無しさん [2022/06/08(水) 18:40:07.58 ID:lFvBESVva.net] 2 ^ 15 - 1 = 32767 じゃね
413 名前:デフォルトの名無しさん mailto:sage [2022/06/08(水) 18:40:44.71 ID:mwMQbcQT0.net] ググれよ
414 名前:デフォルトの名無しさん (ワッチョイ c1da-/lmG) mailto:sage [2022/06/08(水) 19:08:37 ID:/v6Td7Qv0.net] >>396 面白いんですけど何で商品の話ですか
415 名前:デフォルトの名無しさん (アウアウウー Sa11-fRoS) [2022/06/08(水) 19:25:08 ID:2MMAQscUa.net] 32bitのexcelと64bitのexcelでintの範囲違うんだろうか (もちろんOSの話ではない)
416 名前:デフォルトの名無しさん mailto:sage [2022/06/08(水) 19:34:40.24 ID:38a4SNrC0.net] >i = i + 1 'コピー先の行を一つ下にずらす。 ってあるから貼り付け先が integer 超えたらだめじゃねって思った
417 名前:デフォルトの名無しさん mailto:sage [2022/06/08(水) 19:43:22.59 ID:60yE+Uw7d.net] Dim 残りの髪の毛 As byte Dim 抜け毛 As LongLong あとよろしく ↓
418 名前:デフォルトの名無しさん mailto:sage [2022/06/08(水) 19:45:48.83 ID:C2b/Gc96H.net] >>411 なるほど!どうりで最後まで貼られてなかったんだ(´;ω;`)早速ありがとうございます。 ちょっと自分でやり直してみます!!m(__)m
419 名前:デフォルトの名無しさん mailto:sage [2022/06/08(水) 19:46:53.74 ID:C2b/Gc96H.net] >>412 流れぶった切ってゴメンなさい でも考えすぎてハゲそうな勢いでした。。頭悪くてイヤになります。。
420 名前:デフォルトの名無しさん mailto:sage [2022/06/08(水) 20:12:39.32 ID:C2b/Gc96H.net] ダメだ、integerをlongに替えてやってみたけど やはり半分以下しか貼られませんでした。 もう少し頑張ってみます
421 名前:デフォルトの名無しさん mailto:sage [2022/06/08(水) 20:25:07.29 ID:C2b/Gc96H.net] 自己解決しました。1つのエリアの塊が飛び飛びになってたので 同じエリアのブック内で上書きされてたみたいです。 でも皆さんのおかげで解決出来ました。ありがとうございました! またハゲそうになったらこちらに伺いたいです。。懲りずによろしくお願いいたしますm(__)m
422 名前:デフォルトの名無しさん mailto:sage [2022/06/08(水) 22:42:41.32 ID:3hgKnM3d0.net] また毛
423 名前:デフォルトの名無しさん mailto:sage [2022/06/09(木) 00:00:12.33 ID:XIUzPNKLM.net] ※よろず~ニュース 波平さん銅像に髪の毛戻る 引き抜かれてから5日の〝スピード植毛〟 https://yorozoonews.jp/article/14640597 杉田 康人 https://public.potaufeu.asahi.com/dd83-p/picture/26885823/46ac4b106abdd0873e85fa50ea6f8cbb_640px.jpg 東京都世田谷区の桜新町商店街にある人気アニメ「サザエさん」一家の銅像から引き抜かれていた髪の毛が8日、復活した。同商店街によると3日朝、波平さんのトレードマークとなっている貴重な1本毛が抜かれているのが見つかった。ワカメちゃんの頭頂部から跳ね出した〝アホ毛〟3本もなくなっていたが、商店街の依頼を受けた業者が8日午後までに修復した。 サザエさん一家は、桜新町に住んでいる設定。作者の長谷川町子氏の美術館・記念館おひざ元の桜新町商店街は、作品ゆかりのストリートとして知られる。銅像は2012年(平成24)に建立したが、商店街の担当者によると波平さんはこれまでに6度、毛を引き抜かれる憂き目に遭っている。ワカメちゃんの髪が抜かれるのは初だという。 銅像の髪の毛は、針金にビニールをコーティングしたもの。(略) ※省略していますので全文はソース元を参照して下さい。
424 名前:デフォルトの名無しさん (ブーイモ MM39-M86+) [2022/06/09(木) 04:46:01 ID:CxlByAWLM.net] このハゲ / ̄ ̄ ̄ ̄ ̄ ̄\ / \ / ヽ l:::::::::. | |:::::::::: (●) (●) | |::::::::::::::::: \___/ | ヽ:::::::::::::::::::. \/ ノ
425 名前:デフォルトの名無しさん [2022/06/09(木) 19:07:14.80 ID:cD/wL2EQ0.net] いや お前らハゲ散らかし過ぎだろ
426 名前:デフォルトの名無しさん [2022/06/09(木) 21:45:50.80 ID:WYCVR9XP0.net] >>420 そんなつもりは毛頭ございません
427 名前:デフォルトの名無しさん mailto:sage [2022/06/09(木) 22:38:52.28 ID:pASwhhxq0.net] パソコンばっかやっているから禿るんだわ いい加減気がつけよ
428 名前:デフォルトの名無しさん mailto:sage [2022/06/09(木) 22:48:34.88 ID:/RbqsnKRd.net] 禿げてる奴がパソコンばっかやるようになるんだわ 人生って残酷だよな
429 名前:デフォルトの名無しさん [2022/06/10(金) 07:26:23.24 ID:1o37Jrb90.net] もうしわ毛ありません
430 名前:デフォルトの名無しさん mailto:sage [2022/06/10(金) 07:28:26.18 ID:rEbuXRdM0.net] 真面目に話すと、パソコン作業は頭使うしストレスの負荷が高いから禿やすいとは聞いた。
431 名前:デフォルトの名無しさん (ワッチョイ 1abd-+jz7) mailto:sage [2022/06/10(金) 08:55:47 ID:kCKMlptW0.net] 人間関係の煩わしさでストレスの負荷が多い場合が多いから、パソコン作業はハゲにくいらしいよ
432 名前:デフォルトの名無しさん mailto:sage [2022/06/10(金) 12:04:33.87 ID:F7hdpVFcd.net] パソコンからは強い電磁波が出てるから、パソコン作業は禿げやすいとは聞いた。
433 名前:デフォルトの名無しさん [2022/06/10(金) 12:51:05.36 ID:zP3+9Ywoa.net] ハゲ対策の情報もいっぱい持ってるから予防できる
434 名前:デフォルトの名無しさん mailto:sage [2022/06/10(金) 13:28:56.18 ID:dcEjX7ueM.net] 男性ホルモンの優位でハゲるから(*ノω・*)テヘ
435 名前:デフォルトの名無しさん mailto:sage [2022/06/10(金) 13:52:15.99 ID:6StqYoESd.net] パソコンの前でやる事と言ったらそれしか無いからな
436 名前:デフォルトの名無しさん mailto:sage [2022/06/10(金) 18:44:17.05 ID:rEbuXRdM0.net] 男性ホルモンが盛んなのですから禿る
437 名前:デフォルトの名無しさん [2022/06/10(金) 22:17:29.28 ID:e4qm213id.net] このスレで質問するレベルの馬鹿が作ったExcel表のせいで葛飾区の保育所は大騒ぎ
438 名前:デフォルトの名無しさん mailto:sage [2022/06/10(金) 22:31:48.31 ID:lQlywAWy0.net] エクセル2016で複数のbook開いてると単体で開いてるときよりもずっとVBAの動作が遅くなるんだけど 解決策知ってる人いる?
439 名前:デフォルトの名無しさん mailto:sage [2022/06/10(金) 22:34:53.56 ID:/aCQrqDp0.net] 複数開かなきゃいいんじゃね
440 名前:デフォルトの名無しさん mailto:sage [2022/06/10(金) 23:02:11.31 ID:yoZYMWv5H.net] >>432 (´;ω;`)
441 名前:デフォルトの名無しさん mailto:sage [2022/06/10(金) 23:11:39.01 ID:rEbuXRdM0.net] >>432 え?詳しく ググっても詳細出てこない。 禿そうだわ
442 名前:デフォルトの名無しさん (ワッチョイ 86da-fOeb) mailto:sage [2022/06/10(金) 23:14:29 ID:rEbuXRdM0.net] あ、葛飾区のニュース出て来た 表計算ソフト式に誤りとか最低だろう。 テストしなかったのかな?
443 名前:デフォルトの名無しさん (ブーイモ MM71-Rebr) mailto:sage [2022/06/10(金) 23:17:41 ID:Vb4kLAL3M.net] >>436 検索初心者か? 普通にぐぐって一発で出るんだが https://xtech.nikkei.com/atcl/nxt/news/18/13050/
444 名前:デフォルトの名無しさん (ワッチョイ 5d93-QMxd) mailto:sage [2022/06/10(金) 23:24:30 ID:bPqrOIr80.net] どーせsubtotalじゃなくsumで小計出してたせいで合計が2重計上されたとかじゃねーの
445 名前:デフォルトの名無しさん mailto:sage [2022/06/11(土) 00:03:58.02 ID:peHZyvXnd.net] Dick A as strong Dick B as strong If A > B then A = Tachi B = Uke End if A => B
446 名前:デフォルトの名無しさん mailto:sage [2022/06/11(土) 00:50:08.66 ID:c8NiZZbH0.net] >>440 ツッコミどころ満載やな
447 名前:デフォルトの名無しさん [2022/06/11(土) 09:42:09.94 ID:k8BssVI/0.net] A もB も 強そうな型だなオイ
448 名前:デフォルトの名無しさん mailto:sage [2022/06/11(土) 11:19:57.24 ID:zJAfd1A70.net] ストロングチューハイはやばい酔い方する
449 名前:デフォルトの名無しさん mailto:sage [2022/06/11(土) 12:41:06.40 ID:CM4vZAaMM.net] A = Bだとどうなるの?
450 名前:デフォルトの名無しさん mailto:sage [2022/06/11(土) 14:14:10.27 ID:ZxVNHiJ20.net] なんで竿がデカい方が攻めなんだよ はっ倒すぞ
451 名前:デフォルトの名無しさん mailto:sage [2022/06/11(土) 14:27:57.92 ID:8O7zsVZWM.net] どこにも竿の大きさなんて書いてない クラス定義まで見ない限り、何を比較してるのか、このコードだけではわからない さては思い込みでコードを書いてバグを発生させちゃうタイプだな?
452 名前:デフォルトの名無しさん mailto:sage [2022/06/11(土) 15:03:55.80 ID:zJAfd1A70.net] 分かってないだけでしょ
453 名前:デフォルトの名無しさん mailto:sage [2022/06/11(土) 16:08:12.40 ID:ZxVNHiJ20.net] If Dick(竿)A>DickB Then A=タチって書いてあんじゃんか
454 名前:デフォルトの名無しさん mailto:sage [2022/06/11(土) 16:33:22.04 ID:k7wiIunZM.net] Strongは精力じゃね? 大きさならSizeとかLengthとか
455 名前:デフォルトの名無しさん mailto:sage [2022/06/11(土) 18:37:34.42 ID:4UGI/r2E0.net] 禿は精力が強い
456 名前:デフォルトの名無しさん mailto:sage [2022/06/11(土) 19:01:23.35 ID:qcSYfg6i0.net] B = Not(A) じゃね
457 名前:デフォルトの名無しさん mailto:sage [2022/06/11(土) 20:12:32.64 ID:VlCDkB2oM.net] DickクラスのSizeプロパティは読み取り専用 Electプロパティは代入可能 Cumメソッドは1日5回以上使うと例外発生
458 名前:デフォルトの名無しさん mailto:sage [2022/06/11(土) 21:54:22.38 ID:Ejve8RvI0.net] ShapeとTextBoxをマクロで作ったのを 別のBookのSheetにコピペした時のフォントは マクロ側とコピペ側だとどちらに依存しますか?
459 名前:デフォルトの名無しさん mailto:sage [2022/06/11(土) 22:02:30.68 ID:TK5b+qDd0.net] 聞く前にやったほうが早いだろw
460 名前:デフォルトの名無しさん mailto:sage [2022/06/11(土) 22:04:32.17 ID:XvS1eUBu0.net] 質問失礼いたします。 ユーザー定義型に以下のようなツリー型になる感じの物をPublicで宣言してて クラスモジュールにユーザー定義型の変数を作っているのですが、 プロパティの作り方で悩んでいます。 以下標準モジュール内 Public Type MinorItemType ' 小項目 minorItemName as String ' 小項目名 minorItemID as Long End Type Public Type MajorItemType ' 大項目 majorItemName as String ' 大項目名 majorItemID as Long minorItem() as MinorItemType End Type 以下クラスモジュール内 Dim majorItem_() as MajorItemType この場合、以下のようにMajorItemType型のプロパティを作成して丸ごと渡すのか、 Public Property Get majorItem(ByVal num as Long) as MajorItemType majorItem = majorItem_(num) End Property それともユーザー定義型の中の変数へのプロパティを1つずつ作成するのか、 どちらが正しいのでしょうか? ちなみに作成するプロパティは原則Getのみで、 変数に値を取得するのは、クラス内に作成したSubプロシージャで シートへ値を取りに行かせる具合です。
461 名前:デフォルトの名無しさん (ワッチョイ ff42-kGh4) mailto:sage [2022/06/11(土) 22:38:15 ID:kVPUfUKj0.net] 正解はない
462 名前:デフォルトの名無しさん mailto:sage [2022/06/11(土) 23:57:34.93 ID:XvS1eUBu0.net] >>456 ありがとうございます。前者の方法で行ってみます。
463 名前:デフォルトの名無しさん mailto:sage [2022/06/12(日) 00:52:49.29 ID:SFQsQSvz0.net] 戦車の砲塔で行ってみてやりにくかったら変えればいいんじゃね
464 名前:デフォルトの名無しさん mailto:sage [2022/06/12(日) 01:40:55.69 ID:QoN69QoAd.net] 芋芋亀してみます!
465 名前:デフォルトの名無しさん mailto:sage [2022/06/12(日) 18:48:33.62 ID:cJxXuNHT0.net] 文字列の一部分に0付き右詰めの数字を入れたいのだが・・・・ a = "000000000" b = a Mid(a, 2, 5) = 123 Debug.Print "変更前" & b Debug.Print "変更後" & a 結果 変更前000000000 変更後012300000 これだと左詰めなんだが、こうなるべきじゃないの? 変更後0123 000 midにRightをかぶせてみたんだが、 Right(Mid(a, 2, 5), 3) = 123 オブジェクトが必要て言われる。 どうすればいいの?
466 名前:デフォルトの名無しさん [2022/06/12(日) 19:03:38.39 ID:M5mGZ9TuM.net] format(123, "000000000")じゃ駄目なの?
467 名前:デフォルトの名無しさん mailto:sage [2022/06/12(日) 19:09:33.96 ID:DaJUN4Jhd.net] Mid(a, 2, 5) = 123 の右辺を数字のままにしてるからおかしくなると思うので CStr(123)みたいに文字列にしてからセットすればいいんじゃ
468 名前:デフォルトの名無しさん mailto:sage [2022/06/12(日) 19:30:47.38 ID:ImMFuzyy0.net] むしろ Mid(a, 2, 5) = 123 これでなんでaが012300000になるの?どう評価されてるの?
469 名前:デフォルトの名無しさん mailto:sage [2022/06/12(日) 19:37:46.32 ID:ImMFuzyy0.net] ??? Sub foo() a = 0 Mid(a, 1) = "aaa" '通る Right(0, 2) = "bbb" 'エラー Debug.Print a End Sub
470 名前:デフォルトの名無しさん mailto:sage [2022/06/12(日) 20:39:25.03 ID:uZt7xySi0.net] 自分ならright("000000000" & "123"の右側を取る
471 名前:デフォルトの名無しさん mailto:sage [2022/06/12(日) 21:12:13.58 ID:DaJUN4Jhd.net] ああ右詰で数字をいれたいのか 自分のレスは無視して そもそも桁数も統一してないからそこから見直せ
472 名前:デフォルトの名無しさん mailto:sage [2022/06/12(日) 21:35:58.65 ID:cJxXuNHT0.net] Sub sample() '01 PIC X(1) '01 PIC 9(5) '01 PIC X(3) a = "A00000ABC": Debug.Print "元データ :" & a Mid(a, 2, 5) = Format(123, "00000"): Debug.Print "パターン1:" & a a = "A00000ABC" Mid(a, 2, 4) = Format(123, "0000"): Debug.Print "パターン2:" & a a = "A00000ABC" Mid(a, 2, 5) = Format(123, "000"): Debug.Print "パターン3:" & a a = "A00000ABC" Mid(a, 2, 5) = 123: Debug.Print "パターン4:" & a a = "A00000ABC" c = "00000" RSet c = 123 Mid(a, 2, 5) = c: Debug.Print "パターン5:" & a End Sub 元データ :A00000ABC パターン1:A00123ABC パターン2:A01230ABC パターン3:A12300ABC パターン4:A12300ABC パターン5:A 123ABC パターン1が正解なんだけど、なぜパターン4は3文字分だけ書き換えるんだろう? パターン4がOKならパターン5でもいけるような気がするが、パターン5は空白を埋める。 RSet Mid(a, 2, 5) = 123 はエラーになる
473 名前:デフォルトの名無しさん mailto:sage [2022/06/12(日) 21:46:31.55 ID:ImMFuzyy0.net] それ以前に Mid(a, 2, 5) = Format(123, "00000") でエラーが出ないのがおかしいだるお
474 名前:デフォルトの名無しさん mailto:sage [2022/06/12(日) 21:52:55.42 ID:SFQsQSvz0.net] ちなみに -123 のときどうする?
475 名前:デフォルトの名無しさん [2022/06/12(日) 22:19:45.52 ID:+/mRZvLHd.net] ID:ImMFuzyy0 馬鹿は黙っていればいいのに そうやって馬鹿を曝け出していると頭の皮膚も曝け出されるぞ
476 名前:デフォルトの名無しさん mailto:sage [2022/06/12(日) 22:37:23.13 ID:aOGWTw070.net] midステートメントは今ある文字列に対して別の文字列を被せるだけの動作だよ
477 名前:デフォルトの名無しさん mailto:sage [2022/06/12(日) 23:03:38.74 ID:b6RzJ+XoM.net] 別の文字列を被せるのは仕様外動作だと思うけどな
478 名前:デフォルトの名無しさん mailto:sage [2022/06/12(日) 23:07:02.46 ID:ImMFuzyy0.net] 何一つその動作がのってねぇ https://docs.microsoft.com/ja-jp/office/vba/language/reference/user-interface-help/mid-function
479 名前:デフォルトの名無しさん mailto:sage [2022/06/12(日) 23:10:22.37 ID:UzvPms3IM.net] 引数以外の手段で関数に値を代入(?)するという前代
480 名前:「聞の珍動作 何が起きるか分かったもんじゃない [] [ここ壊れてます]
481 名前:デフォルトの名無しさん mailto:sage [2022/06/12(日) 23:13:02.41 ID:cJxXuNHT0.net] つまり Mid(a, 2, 5) = 123 は aの2文字目から5文字分ところに、"123"を書き込むんだけど、 3文字しかないから、4-5文字目は何もしないてことだよね。 でも代入の原則論から言えば、足りない部分はスペースで埋めるんじゃないのか? RSetは足りない部分はスペースで埋めてる。 まあ、それが仕様だて言えばそうだけど、 深く考えて作られてないのかな。 もし、RSetも3文字しか代入しないのなら、RIGHTやFORMATを使わなくても0埋めができるし、 単純な代入だから性能もいいはず。
482 名前:デフォルトの名無しさん mailto:sage [2022/06/12(日) 23:16:04.57 ID:cJxXuNHT0.net] >>473 それはmid関数。 midステートメントとは別物だよwww。 https://docs.microsoft.com/ja-jp/office/vba/language/reference/user-interface-help/mid-statement オレもさっき知ったんだがwww
483 名前:デフォルトの名無しさん mailto:sage [2022/06/12(日) 23:29:45.68 ID:nFfW5LM6M.net] そんなものがあったのか!? けど代入元の型は文字列になってるけど数値を代入していいのか?
484 名前:デフォルトの名無しさん mailto:sage [2022/06/12(日) 23:33:25.21 ID:ImMFuzyy0.net] >>476 ありがとう!!! 気になって眠れないとこだった。俺の頭がおかしくなったのかと思ったわw ステートメント、一度目を通しておいたほうがいいね https://excel-ubara.com/EXCEL/EXCEL908.html >>477 vbaで何をいっとるんじゃい
485 名前:デフォルトの名無しさん mailto:sage [2022/06/12(日) 23:54:08.09 ID:cJxXuNHT0.net] >>477 どの言語もできるような気もするが。 出来ない言語なんかあったけ? 化石のような言語のCOBOLでもできる。 COBOLだと9型の変数があって、VBA風にかくと Dim a as 99999 a = 123 でaを00123にしてくれる。 a=RIGHT("00000" & 123,5)なんてやってるのをみて驚いたわ。
486 名前:デフォルトの名無しさん mailto:sage [2022/06/12(日) 23:56:26.34 ID:as/ibVfq0.net] ちなみに、MidステートメントはLetステートメントと違ってヒープ領域の再確保を行わないようなので めちゃくちゃいっぱい文字列を結合したり置き換えたりする文字列操作をMidステートメントで高速化できたりはする 色々注意しなきゃならんしめんどいけど
487 名前:デフォルトの名無しさん mailto:sage [2022/06/13(月) 14:10:09.78 ID:cuhQaR4kM.net] mid("00000",5-len(a),len(a))=a なんてやってるの?
488 名前:デフォルトの名無しさん mailto:sage [2022/06/13(月) 15:41:58.25 ID:e6QxpplAd.net] 文字列の一部分に0付き右詰めの数字を入れたいのだが・・・・ これがやりたい事なんだから A.MIDステートメントを使うなら右辺の値を5桁固定にする Mid(a,2,5) = Format(123,"00000") B.代入するの文字列を代入先の左側+5桁固定の値+代入先の右側にする a = Mid(a,1,1) & Format(123,"00000") & Mid(a,7,Len(a)) あたりに落ち着くのでは 自分は誤解されないためにもBのようなコードがいいと思うけど
489 名前:デフォルトの名無しさん mailto:sage [2022/06/13(月) 18:10:47.94 ID:S+tXl/uoD.net] 自分なら right("00000" & 123, 5) って書く
490 名前:デフォルトの名無しさん mailto:sage [2022/06/13(月) 18:28:06.25 ID:CiY+fWgN0.net] セルの書式設定に 0000# って書けばいいのに
491 名前:デフォルトの名無しさん mailto:sage [2022/06/13(月) 19:38:44.31 ID:5YQd33j2d.net] いやどうせVBAでやるならNumberFormatLocalでやろうよ
492 名前:デフォルトの名無しさん mailto:sage [2022/06/13(月) 20:02:21.45 ID:3bSnFxDm0.net] 要件にもよるが正規表現とFormat()で。
493 名前:デフォルトの名無しさん mailto:sage [2022/06/13(月) 21:14:24.62 ID:c4yOIzj40.net] >>482 https://www.moug.net/tech/exvba/0140045.html MIDステートメントのほうが速いらしい。 でもオレが試したら逆だったけど・・・・
494 名前:デフォルトの名無しさん mailto:sage [2022/06/13(月) 22:37:41.37 ID:pISmU68J0.net] みんなのコードカッコいいわ やっぱりコードはカッコ良くなきゃ舐められるわな
495 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 01:08:48.71 ID:GVYlqPTN0.net] >>488 他に見るやつがいないなら動きゃいいとか思ってしまう
496 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 01:18:48.91 ID:MKKHJJii0.net] てか若者とお年を召された方のコードの書き方が明らかに違うのだが、古臭い目新しいとかあるのかな?
497 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 02:02:23.05 ID:GVYlqPTN0.net] 今は可読性悪いのは駄目ってなってるけど逆に改行や変数名の長さすらケチってた時代もあった んで言語が進化するにつれて書き方も変わっていった 今でも昔の方法で書けるっちゃ書けるけどそれが古臭いってことだと思う
498 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 02:07:02.10 ID:MKKHJJii0.net] お年を召された方(60~70代)のコード見たら、やたら変数ばかり多かった印象が。 変数使わなくても普通に書けばいいじゃんて部分まで変数に入れていた。
499 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 02:33:52.97 ID:TUO2NKc8M.net] >>492 今でもコード中に定数をそのまま書くのは別に推奨されてないぞ せめて別の人がコードを見た時に数字の意味がわかるようにしとかないとバグの元になる
500 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 07:10:06.79 ID:r7EVbuk4D.net] >>492 のコードはVBAに限らず可読性悪そう
501 名前:デフォルトの名無しさん [2022/06/14(火) 07:54:24.65 ID:7uTlYRrCa.net] >>492 変数にいれないで普通の書くのか? 定数なら定数として定義すると思うが
502 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 08:25:15.24 ID:bcp0w+/6d.net] >名著「リーダブルコード」に「説明変数」という言葉が出てくる。
503 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 08:35:10.08 ID:T3k1EtCC0.net] マジックナンバーは避けようぜ 後で見返す時に(この4って何を意味してるんだ…?)ってなると効率落ちる
504 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 08:37:28.94 ID:YQpYn/pu0.net] 郵便番号+電話番号ていう文字列があるんだが、郵便番号、電話番号を別々の変数に入れたいので こうしてみたんだがうまくいかない。 なにか手はある? いまType1は項目が2個だけど、なるべく一括で入れたいのだが・・・ Type Type1 Zip As String * 7 telnum As String * 11 End Type Sub Sample() Dim b As Type1 a = "151123408012341234" b = a End Sub
505 名前:デフォルトの名無しさん [2022/06/14(火) 09:04:23.14 ID:06qw5AlY0.net] aの文字列が固定長なら Left(a,7) Right(a,11) でダメなんか
506 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 09:11:18.76 ID:b1sVlKW1M.net] >>498 C系やVBなら可能だけどVBAではWin32APIを使わないと無理 また、可能だからと言って、複数の変数に一括でデータを入れるような書き方は可読性が下がるので推奨されない コードをコンパクトに見せたいなら代入部分を以下のようにモジュール化するのがマスト 電話をRightで取り出さないのは、固定電話は桁数が違うから Sub SetNumbers(ByRef T As Type1, N As String) T.Zip = Left(N, 7) T.telnum = Mid(N, 8, 11) End Sub
507 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 10:48:30.78 ID:WigeF4Tr0.net] >>498 若干無理矢理だけどクラス使えば似たような事は出来る Type1.cls Private Zip_ As String * 7 Private telnum_ As String * 11 Public Property Let Default(N As String) Zip_ = Left(N, 7) telnum = Mid(N, 8) End Property Public Property Get Zip() Zip = Zip_ End Property Public Property Get telnum() telnum = telnum_ End Property デフォルトプロパティの設定がちょっとトリッキー、こことかを参考に https://thom.hateblo.jp/entry/2015/02/16/003000 あとは Dim a As New Type1 a = "151123408012341234" Debug.Print a.Zip Debug.Print a.telnum
508 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 13:04:52.31 ID:IIEda1opd.net] >>487 何を目的とするかによるけど 速度は重視しないのであれば比較的周知されているBの方がいいのではと思うだけで 書き方なんて色々あるんだから試行錯誤すればいいと思う
509 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 13:11:14.27 ID:IIEda1opd.net] >>498 記憶があいまいだけど 長さの合計値が同じになる変数を持つ構造体を作ってそれをLSetで代入すれば可能だと思う Type Type1 Zip As String * 7 telnum As String * 11 End Type Type Type2 Value As String * 18 End Type Sub Sample() Dim b As Type1 Dim a As Type1 a.Value = "151123408012341234" LSet b = a End Sub
510 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 13:57:57.06 ID:yUQgc7GAM.net] >>503 それで代入だけは可能だけど、電話番号が10桁だと末尾に自動的にスペースが入って11文字に補正される 固定長文字列はTrimもできないから、結局構造体を使う方法はトラブルの予感しかしない
511 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 14:36:41.07 ID:IIEda1opd.net] >>504 与えられたデータだけの回答だからね 与えられた情報以外の事をあーだこーだいう人いるけど それはその時考えたらよくない? そもそもそういう事を言い出したら 質問のできるできないはできないって回答になるわけだし
512 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 14:46:19.33 ID:QIi9ICtD0.net] 与えられたデータっていうか、前提条件がはっきりしないからなぁ >郵便番号+電話番号ていう文字列がある 以外は試してみたっていうコードからの推測だしな まあおれなら合体文字列のセッターと郵便番号、電話番号のゲッターのプロパティ持つクラス作るかなぁ 中身はLeftとMidでいいんじゃね 固定長で最速を目指すならLSetもありかもしれんが 構造体うんぬんより、固定長文字列がトラブルの予感を感じさせるんだよなぁ、いろんなところで
513 名前:デフォルトの名無しさん [2022/06/14(火) 15:27:21.00 ID:jJwMl27ba.net] 固定長文字列って文字数で良いんだっけ? 全角でもおなじ?
514 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 17:23:15.55 ID:QIi9ICtD0.net] >>507 文字数だから全角でも同じはず というか、文字列はユニコードってことになってるから全角とか半角とかないってことになってるんだよ、いちおう
515 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 19:35:25.43 ID:vdrsXIkl0.net] 関数2つ作ればいいのにわざわざ構造体やクラスつくる意味あんのかな 処理速度を気にするのは自力で動くの作れるようになってからだぞ
516 名前:デフォルトの名無しさん mailto:sage [2022/06/14(火) 20:24:08.87 ID:sqy53zZK0.net] >>487 簡単にいうと、なんでもMidステートメントに置き換えれば速くなるってわけでもない(そういう使い方にはちょっと注意がいる) あと固定長文字列はいかにも速そうだが実は可変長文字列よりパフォーマンスが落ちることが割とあって、これまた扱いに注意を要する まずは自分の望む動作をするコードを完成させることに注力した方がいいんでないかな (速度改善や利便性向上みたいなのはなんていうか、キリのない作業でもあるし)
517 名前:デフォルトの名無しさん mailto:sage [2022/06/15(水) 07:33:40.74 ID:7lj8rf8tD.net] >>509 クラス1つ作ればいいのにわざわざ関数2つ作る意味あんのかな、 って疑問を持つ奴もいるからどっちもどっち
518 名前:デフォルトの名無しさん [2022/06/15(水) 10:47:02.71 ID:EefWJAwfa.net] 自力でやれるなら好きに組めば良いけど それもできない初心者だからな
519 名前:デフォルトの名無しさん mailto:sage [2022/06/15(水) 11:15:30.59 ID:WoPQ0lFMd.net] こういうやり方があるよって回答だけすればあとは質問者がそれを選択するだけでいいのに 他人の回答にケチ付けるやつはなんなんだろうと思う
520 名前:デフォルトの名無しさん mailto:sage [2022/06/15(水) 11:50:46.53 ID:RetoKdFBM.net] >>513 質問の内容(仕様)が明確じゃない部分を好き勝手に解釈した結果
521 名前:デフォルトの名無しさん mailto:sage [2022/06/15(水) 12:43:33.38 ID:2pwDzYJj0.net] >>513 >>514 単に性格悪いってだけ
522 名前:デフォルトの名無しさん mailto:sage [2022/06/15(水) 13:41:42.48 ID:HRaMYgOd0.net] ユーザーフォームに毎回違う数のラベルを作った時に、それぞれのラベルでクリックイベントを作りたいのですが ラベル数が変動するので作れません。 こういう場合、存在するどのラベルをクリックしたかを調べるにはどうすればいいですか?
523 名前:デフォルトの名無しさん mailto:sage [2022/06/15(水) 14:04:25.53 ID:2pwDzYJj0.net] >>516 昔やろうとしたけど超しんどいよ vb6にはコントロール配列って機能があってそれを使えばよかったけど、 vbaでなぜかなくなっているので絶望的にめんどくさい 他の方法を考えたほうがいい どうしてもやるなら「vba コントロール配列」あたりで検索して頑張ってくれ。 https://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub05_100_040.html
524 名前:デフォルトの名無しさん mailto:sage [2022/06/15(水) 14:41:31.92 ID:EFN5k3S5d.net] >>516 ラベルは最大数で作っといて、必要な分だけVisibleで見せる
525 名前:516 mailto:sage [2022/06/15(水) 17:15:36.58 ID:HRaMYgOd0.net] >>517 他に方法がなさそうなのでこれでやってみます >>518 Private Sub Label1_Click() を1000個とか作るのはちょっと汚いので止めておきます
526 名前:デフォルトの名無しさん mailto:sage [2022/06/15(水) 17:23:32.33 ID:C/XRb82A0.net] ラベルを動的に1000個作るのは汚くないのかよ
527 名前:デフォルトの名無しさん mailto:sage [2022/06/15(水) 17:37:50.64 ID:fn3i9wsI0.net] まずどうして1000個も必要なのかのほうが突っ込みどころな気がする VBAってフォーム内でクリックした座標の検出できないのかいな
528 名前:デフォルトの名無しさん mailto:sage [2022/06/15(水) 17:42:47.22 ID:Vg/305+8M.net] クリックイベントを1000個作るぐらいならクラス化しちゃうかなぁ どっちにしろ面倒臭いけど 大量にラベル設置した時のリネーム作業を簡単に出来る方法何かない?
529 名前:デフォルトの名無しさん mailto:sage [2022/06/15(水) 17:51:28.07 ID:2pwDzYJj0.net] いや普通につくるならプルダウンだろ 何かしらで分岐させれば3,4回の選択で済む
530 名前:デフォルトの名無しさん mailto:sage [2022/06/15(水) 18:13:02.83 ID:Vg/305+8M.net] 構内マップを作らされてその上にマインスイーパみたいな升目を作らされ、機器の設置場所を設定出来るようにしたい。場所の指定は分かりづらいから文字だけにするのはNGね。なんて業務を振られる事も稀によくある
531 名前:デフォルトの名無しさん mailto:sage [2022/06/15(水) 18:14:34.90 ID:C/XRb82A0.net] 何をどうしたいのか知らんし、その1000個の元データはどっからどう持ってくるのかしらんけど Excel VBAだしな 俺ならシートで選択させてフォームのボタンかな
532 名前:デフォルトの名無しさん mailto:sage [2022/06/15(水) 18:28:15.26 ID:C/XRb82A0.net] >>524 で、それを実現するのがEXCEL VBAでラベル1000個なのか? いろいろ検討して最終的にそれしかないとなったならまあご愁傷様 そうじゃないならあほとしか思えん
533 名前:デフォルトの名無しさん mailto:sage [2022/06/15(水) 18:47:53.19 ID:Vg/305+8M.net] それしかないじゃなくてそれしか許されないんだよ アホかって思いながらやってるよ
534 名前:デフォルトの名無しさん mailto:sage [2022/06/15(水) 18:57:22.93 ID:myHzQmQR0.net] マス目なら座標取ればいいような気がするが許されないなら仕方がないな
535 名前:デフォルトの名無しさん mailto:sage [2022/06/15(水) 19:32:37.12 ID:JFwHiHWC0.net] a=郵便番号電話番号 b=Left(a,7) c=Replace(a, Left(a, 7), "")
536 名前:デフォルトの名無しさん mailto:sage [2022/06/15(水) 19:34:39.87 ID:8qf24aUq0.net] 1000ならまだいける、10000だったら逃げるけどな
537 名前:デフォルトの名無しさん mailto:sage [2022/06/15(水) 19:40:20.96 ID:2pwDzYJj0.net] >>529 NG
538 名前:デフォルトの名無しさん mailto:sage [2022/06/15(水) 19:56:19.48 ID:y5599rfC0.net] ワークシートの背景をマップにしてセルクリックでイメージを表示するイベント書けば?
539 名前:デフォルトの名無しさん mailto:sage [2022/06/15(水) 19:57:21.42 ID:TJhxNtAv0.net] 昔ながらの紙の地図帳をイメージすればいいのか 最初のページで全体図をマッピングした概略図を掲げといて 詳細の判るまで拡大した一ページ(※)をマス目で区切って、縦に 1 2 3 横に A B C とか振り分けて 例えば B 4 とかをクリックしたら「設備名」の詳細を表示するとかか? ユーザーフォームでそれぞれのマス目を呼び出すよりは、インデックスのSheetに全体図 そこをクリックで各Sheet (※)へジャンプとかのが楽そう 上が承認するかどうかだけど 上に承認してもらうようにサンプル作ってプレゼンしてもいいし
540 名前:デフォルトの名無しさん (スッップ Sd1f-UWq1) mailto:sage [2022/06/15(水) 21:04:50 ID:m3jNjkHdd.net] コントロールフォームの動的配置 & クラスモジュールでイベント起こすに一票 どうせどこかでイベント共通化の処理が入るだろうからスケーラビリティ確保のためにも
541 名前:デフォルトの名無しさん mailto:sage [2022/06/15(水) 21:45:31.66 ID:y5599rfC0.net] >>534 うぬ、それが一番だと思うけど何故にエクセルなのかと思ってしまう
542 名前:デフォルトの名無しさん mailto:sage [2022/06/16(木) 01:45:48.79 ID:s8B3FZ9N0.net] 1000個のラベルと見せかけて、 実は1個だけラボルが混ざってるんじゃないだろうか。
543 名前:デフォルトの名無しさん [2022/06/16(木) 07:24:34.47 ID:FKA1V1750.net] テキストファイルを開いて1行ずつ中身を読んでます。 Open ファイル名 For Input As fNo Line Input fNo, buff 途中まで読んだあと、先頭から読み直したいです。 ファイルを閉じてまた開くのは嫌です! 下のURLを参考にして、 FileSystemObjectを使ってすべてを1変数に読み込み 改行コードで区切って配列化して 先頭から読み直したいときは配列の先頭から読みなおし という方法を思いつきましたがコード修正が大変なので もっと楽な方法をご教示いただけたら幸いです。 tps://bokulog.org/vba-read-file/
544 名前:デフォルトの名無しさん mailto:sage [2022/06/16(木) 07:25:26.98 ID:FKA1V1750.net] sageそこねスミマセン
545 名前:デフォルトの名無しさん mailto:sage [2022/06/16(木) 08:10:36.64 ID:fGEidPk00.net] >>529 1桁足りないじゃんって思ったら Optionbaseデフォルト値でやるのが普通なのか? 俺はどうにも馴染めないので1でやってるが
546 名前:デフォルトの名無しさん mailto:sage [2022/06/16(木) 08:12:48.83 ID:H6wZRQj3M.net] >>537 vbaにseekってなかったっけ?
547 名前:デフォルトの名無しさん mailto:sage [2022/06/16(木) 08:52:14.47 ID:ijJBEomdd.net] どんなコード書いててそこからどんな手直しするかわからないのに回答のしようがないよね
548 名前:デフォルトの名無しさん [2022/06/16(木) 10:17:53.34 ID:G3W4msQ6a.net] >>537 ファイルを閉じて開き直すのが祖谷な理由が書かれてませんので 嫌でもやればいいんじゃね
549 名前:デフォルトの名無しさん mailto:sage [2022/06/16(木) 10:35:38.36 ID:OXzWqs7e0.net] IE終了したけど、今日の時点ではVBAからIE操作できた。いつまで保つか明示されてる?
550 名前:デフォルトの名無しさん [2022/06/16(木) 13:56:39.50 ID:j/xQYS4f0.net] サポートしないだけで PC内にIEがある限り 永久に使えるんじゃないか?
551 名前:デフォルトの名無しさん mailto:sage [2022/06/16(木) 14:04:02.85 ID:9IfQq+aNM.net] そのうち深刻な脆弱性が見つかったらセキュリティソフトでウィルス扱いされるようになって、 IEコンポをロードした瞬間にウィルス警告が出るようになるだろうな
552 名前:デフォルトの名無しさん mailto:sage [2022/06/16(木) 14:55:49.33 ID:TulzdQgt0.net] WannaCryのときMSはサポート外にパッチ出しちゃった前科あるからなあ なんだかんだ面倒みそうでなあ
553 名前:デフォルトの名無しさん mailto:sage [2022/06/16(木) 19:55:32.69 ID:g5Jzetu50.net] >>543 7年くらい大丈夫と見たような気がする
554 名前:デフォルトの名無しさん mailto:sage [2022/06/16(木) 21:22:11.67 ID:wccj32jkd.net] >>547 何の根拠もないな 危険な脆弱性が明日見つかったらそれで終わりだよ
555 名前:デフォルトの名無しさん mailto:sage [2022/06/16(木) 23:09:10.84 ID:BfseDl080.net] https://www.ka-net.org/blog/?p=13587 素直にedgeに対応したコンポーネント出してほしいなぁ webapiからjsonを読み込むときにIEだけはいちいちダウンロード確認のポップアップが出て止まる挙動で苦しんだ記憶があるから嫌い
556 名前:デフォルトの名無しさん mailto:sage [2022/06/17(金) 02:08:51.88 ID:qX3KJPna0.net] >>540 Seek命令あるけど、あれランダムかバイナリモード用だと思う が、試したがシーケンシャルファイルでもバイト位置で指定できるな
557 名前:デフォルトの名無しさん mailto:sage [2022/06/17(金) 07:31:22.44 ID:tno+JwDPr.net] >>547 エッジで互換モードする期間じゃない?
558 名前:デフォルトの名無しさん mailto:sage [2022/06/17(金) 08:55:59.12 ID:LpDNne3Kd.net] IEで終了したのは「アプリ」の「サポート」だけだぞ IEオブジェクトはしばらく残すと明言してるから、マクロから使うのはまだ問題ない けど、猶予期間の今のうちに社内ルールの変更など根回しはちゃんとやっとけよ
559 名前:デフォルトの名無しさん mailto:sage [2022/06/17(金) 13:19:56.68 ID:6WxlvkUPd.net] IEが非対応のサイトも増えてくるから対策出来るならした方が良いのはわかってる が現状Selenium Webdriverが最適解のようでいちいちバージョン合わせるためにダウンロードしたり記述が変わったりすげー面倒 MSがどうにかしてくれると淡い期待をしたいが
560 名前:デフォルトの名無しさん mailto:sage [2022/06/18(土) 02:47:00.46 ID:x1pEIMNT0.net] Edgeに限らず、新しくなって使いづらくなるのホント意味不明。 PC起動するとWindows11にしませんか?って言われるけど、もうお前なんか信用しとらんわ!
561 名前:デフォルトの名無しさん [2022/06/18(土) 06:12:14.25 ID:tcSE7QQr0.net] まぁしょうがない 良かれ悪かれ何でも時代の変化で変わって行く VBAは関係ないけどちょっと前にとあるシステムで IE → EDGE の移行作業行ったよ 開発ツールは確かにIEの方がEDGEより 使いやすかったと思う。慣れだろうけどね。
562 名前:デフォルトの名無しさん mailto:sage [2022/06/18(土) 06:56:56.06 ID:8iz4uO0y0.net] 世の中がセキュリティに舵を取るようになったからね 楽観論じゃなりゆかない時代なんだから仕方がない
563 名前:デフォルトの名無しさん mailto:sage [2022/06/18(土) 08:20:33.50 ID:7fgrQLBR0.net] セキュリティを理由に広告ゴリ押し こうはなりたくないね
564 名前:デフォルトの名無しさん (ワントンキン MM8a-ctFn) mailto:sage [2022/06/18(土) 10:08:00 ID:SSs68PlgM.net] もうマイクロソフトの為に仕事するのやめませんか?
565 名前:デフォルトの名無しさん (アウアウウー Sa47-iAjv) [2022/06/18(土) 10:08:32 ID:Os2AgP5Ia.net] ieで取れなかった個人情報を集めてるからな
566 名前:デフォルトの名無しさん [2022/06/18(土) 10:59:15.44 ID:0BdDrqNN0.net] ExcelもIEも何年も使ってないわ kneetじゃねーよ
567 名前:デフォルトの名無しさん mailto:sage [2022/06/18(土) 11:55:08.82 ID:+2kbSQo1M.net] VBAもそろそろかな
568 名前:デフォルトの名無しさん mailto:sage [2022/06/18(土) 13:40:01.62 ID:T0WefD6fd.net] そう言われ続けて20年たった
569 名前:デフォルトの名無しさん mailto:sage [2022/06/18(土) 16:09:32.02 ID:JcC1S0zs0.net] VBA無くなればこのスレも下火になるかもな。 パワークエリスレが活気出る
570 名前:デフォルトの名無しさん mailto:sage [2022/06/18(土) 16:29:16.53 ID:Es40ajdn0.net] PowerQueryは万能じゃない VBAと比較するもんじゃない
571 名前:デフォルトの名無しさん mailto:sage [2022/06/18(土) 18:07:43.74 ID:lnn1Xxq/M.net] PowerShellは万能だぞ ExcelのワークシートもWEBブラウザも操作できる
572 名前:デフォルトの名無しさん mailto:sage [2022/06/18(土) 18:14:09.38 ID:59smDk8ed.net] デフォのPS 5.1はクソだけどな BOM付きUTF-8を要求したり権限厳しかったり
573 名前:デフォルトの名無しさん mailto:sage [2022/06/19(日) 01:44:47.25 ID:7uc9nhCj0.net] 万能かもしれんがVBSみたいな手軽さが無いのがな…
574 名前:デフォルトの名無しさん [2022/06/19(日) 10:44:47.27 ID:uZGRAEGZp.net] Power shellは .Net Freamworkが入ってなければただのShellだもんな なら素直にVSの類いれとけばいい
575 名前:デフォルトの名無しさん mailto:sage [2022/06/19(日) 21:06:19.28 ID:+DYD1D5ZM.net] Powershell 7は.NETと関係ない汎用のコマンドラインシェル macOSやLinux向けの製品すら存在する
576 名前:デフォルトの名無しさん mailto:sage [2022/06/19(日) 21:33:18.64 ID:nfQGh1M+d.net] 追加でWebからインストールしなきゃいけないPowerShell(6以降)に存在価値はない それが許されるんならあえてPowerShellなんて使わずとももっと優れた選択肢がいくらでもある
577 名前:デフォルトの名無しさん mailto:sage [2022/06/19(日) 22:00:01.16 ID:c6U60qvsM.net] Win11でもオプションなの? うちいまだにWin10だからわからん
578 名前:デフォルトの名無しさん mailto:sage [2022/06/20(月) 09:16:41.32 ID:ZiXH0O+ed.net] win11でも入ってるのは5だけ 6以降はサポート期限がLTSでもリリースから2年しかないから、 仮にWindowsにプリインストールすると2年ごとにWindowsの更新で強制的にメジャーバージョンが上がって既存資産がぶっ壊れるリスクが生じる だからどうしてもユーザーの自己責任で塩漬けにできる選択肢が必要で、Windowsの一部として扱うことが不可能なんだよ
579 名前:デフォルトの名無しさん mailto:sage [2022/06/21(火) 14:59:24.30 ID:nrTPRY1Pr.net] 質問です
580 名前:デフォルトの名無しさん mailto:sage [2022/06/21(火) 15:16:20.71 ID:nrTPRY1Pr.net] 質問です ある動画で「連想配列とユーザー定義型を組み合わせると便利」ということで色々勉強していたのですが、ユーザー定義型ってpublic宣言しても別モジュールで呼び出せないですよね? てことは別モジュールにプロシージャがあって、それを引数設定して呼び出してもエラーになりました そこでクラスモジュールを使っても同じような事ができると聞き、クラスモジュール内に3つ型を宣言した変数を作ったのですが、それを配列に入れようとすると「配列に入れることができません」というエラーがでます 具体的には以下のとおりです Dim c() as class1 Set c = New class1 ←ここでエラーがおきます この記述を Dim c() as New class1 とすればエラーは起きないのですが、別モジュールの引数に sub test(c as New class1)と記述はできないので困っています なにかいい方法はないでしょうか?
581 名前:デフォルトの名無しさん mailto:sage [2022/06/21(火) 16:23:50.93 ID:NaTv3t2Wr.net] すみません 私の勘違いでした 普通にユーザー定義型でできました
582 名前:デフォルトの名無しさん mailto:sage [2022/06/22(水) 00:02:57.35 ID:fcQ3wVRo0.net] ネタ投下 「貴様は一体何を仰ってるんだ」Excelマクロの納品時、担当者に言われたひと言にTwitterざわつく - 「良さを完全に殺しに来てる」の声も https://news.mynavi.jp/article/20220620-wadai6/
583 名前:デフォルトの名無しさん mailto:sage [2022/06/22(水) 01:16:32.40 ID:/230SSBOd.net] >>576 くだらなすぎる 読むのは時間の無駄
584 名前:デフォルトの名無しさん mailto:sage [2022/06/22(水) 02:03:36.70 ID:/pBOMLc50.net] うさんくせー セミナー屋ほど胡散臭いのはないわ、 やっぱ5ちゃんねるが一番!
585 名前:デフォルトの名無しさん mailto:sage [2022/06/22(水) 07:25:36.31 ID:dKKatMvdD.net] 嘘松藁人形 手作業大好きおじさんが一人いましたって面白くもない話
586 名前:デフォルトの名無しさん mailto:sage [2022/06/22(水) 07:29:12.94 ID:bFCzOkRx0.net] 話の内容はともかく客に説教とかアホすぎる
587 名前:デフォルトの名無しさん mailto:sage [2022/06/22(水) 09:39:47.61 ID:fcQ3wVRo0.net] 「ミスが起こるような仕組み」でなくて、 まるっきりブラックボックスでもなく、 人が過程を辿れるようなの、作りたいな・・・ とは思う。
588 名前:デフォルトの名無しさん mailto:sage [2022/06/22(水) 11:11:38.88 ID:SHGr4jOjd.net] 完全にネタ、作り話だろこれ そもそもVBAごときでミスが起きないシステムなんて作るの不可能だし マクロはたくさんある工程の一つに過ぎないんだから、業務全体で見ればミスが起きる余地なんてほかにいくらでもあるだろうに
589 名前:デフォルトの名無しさん mailto:sage [2022/06/22(水) 11:58:03.94 ID:qNhhYbIzd.net] 話題にするだけばからしいでしょ こんなの言ったもん勝ちだしね
590 名前:デフォルトの名無しさん mailto:sage [2022/06/22(水) 12:09:22.34 ID:PZ27NODvM.net] ブラックボックスでミスが見つけられない を独自解釈しただけだろ
591 名前:デフォルトの名無しさん mailto:sage [2022/06/22(水) 13:02:01.70 ID:acQQyPov0.net] >>581 どうせDebug.Printするんだろうからデバッグモード付きで納品すればいいんじゃね
592 名前:デフォルトの名無しさん mailto:sage [2022/06/22(水) 13:45:53.56 ID:5jQGKRYma.net] マクロの作成頼まれたけど要求内容があまりにも怪しかったので、 マクロと一緒に「入力に対する出力が合っているか」と「そもそもの入力が誤っていないか」を簡易的に(電卓などで)求められる計算方法を渡した そしたら約3ヶ月に一回ぐらいの割合でそもそもの入力すべきデータを誤っていたことが判明した ってことはあったな 後で調べたら、こういうのは「封筒裏の計算」っていう手法らしいけど
593 名前:デフォルトの名無しさん mailto:sage [2022/06/22(水) 13:46:18.61 ID:qNhhYbIzd.net] >>581 保存期間なり世代管理してログ出力すればいいでしょ
594 名前:デフォルトの名無しさん mailto:sage [2022/06/22(水) 15:52:29.00 ID:acQQyPov0.net] >>586 祝儀袋の封筒に書かれた金額と入っている金が違うやんってことか なるほど日本人はうまい例えを作るもんだと思ったら全然違ってた
595 名前:デフォルトの名無しさん mailto:sage [2022/06/22(水) 17:31:38.14 ID:/pBOMLc50.net] わろた
596 名前:デフォルトの名無しさん mailto:sage [2022/06/22(水) 19:32:15.50 ID:XefayqmG0.net] Excel2013のVBAで Debug.Print (1 = 1) * 1 てやると-1になるけど、 セルで =(1=1)*1 て入れると1になる。 これって不具合?
597 名前:デフォルトの名無しさん [2022/06/22(水) 19:47:11.74 ID:5Bb+Exnq0.net] ワークシート上の(1=1)、つまりTRUE値は「1」だけど VBAでのTrue値は「-1」だから合ってる
598 名前:デフォルトの名無しさん mailto:sage [2022/06/22(水) 21:45:57.03 ID:Io6qCa48M.net] >>576 毎日新聞の戯言 お前暇やろ
599 名前:デフォルトの名無しさん [2022/06/23(木) 00:03:21.37 ID:RpD62pBf0.net] VBAは好き どんな職場で働けばいいの? 正社員じゃなくていいです。
600 名前:デフォルトの名無しさん [2022/06/23(木) 06:39:08.02 ID:d1WC2qsrM.net] >>593 事務派遣。 ゆるい職場ならvba使用が禁止されて無いから与えられた業務で使って見ればいい。
601 名前:デフォルトの名無しさん mailto:sage [2022/06/23(木) 06:45:25.15 ID:ms1G02BaH.net] ワイまさに派遣事務でたまにVBAやってこちらのみなさんにお世話になってる(*´ε`*)
602 名前:デフォルトの名無しさん mailto:sage [2022/06/23(木) 07:34:26.56 ID:OFyvXiPXd.net] >>593 日本で働くのはやめておけ 将来性無いぞ
603 名前:デフォルトの名無しさん mailto:sage [2022/06/23(木) 07:40:40.65 ID:SBEKkY350.net] >>593 派遣おすすめ vba縛りの事務なら、めちゃくちゃ楽で定時に帰れる そういう人を見たことある 一生生きていけるだけの金もってたら、 そういう人生送りたかったってぐらいやりたい生き方だわ [] [ここ壊れてます]
605 名前:デフォルトの名無しさん mailto:sage [2022/06/23(木) 09:00:02.54 ID:KOp9wOBp0.net] 生涯困らない金があって、VBAの事務作業か もっと他に・・ いや、どうぞご自由にだけどさ
606 名前:デフォルトの名無しさん mailto:sage [2022/06/23(木) 09:06:50.94 ID:SBEKkY350.net] >>598 一時金持っててさ、毎日酒のんでゲームしてパッパラパーな人生送ってたのよ 当然、あっという間に体壊して病院行き 適度な仕事は、自分の健康につな
607 名前:がるよ [] [ここ壊れてます]
608 名前:デフォルトの名無しさん mailto:sage [2022/06/23(木) 09:13:48.26 ID:RH4NXyqT0.net] 貧困な想像力って悲しいよね
609 名前:デフォルトの名無しさん mailto:sage [2022/06/23(木) 10:45:06.10 ID:omFSpe9sd.net] VBAしかできないやりたくないような人だとしたらそのような人を使ってくれるところは少ないのでは・・・ なのでここで聞いてもいい回答はもらえないでしょ
610 名前:デフォルトの名無しさん [2022/06/23(木) 10:56:16.87 ID:M4XLJX6ga.net] いまさらVBAには関わりたくないな そもそもVBA自体よりもVBAを使ってる連中と関わりたくない
611 名前:デフォルトの名無しさん [2022/06/23(木) 12:20:08.77 ID:QS7NhMN+a.net] 安定のNHK
612 名前:デフォルトの名無しさん mailto:sage [2022/06/23(木) 12:41:27.99 ID:8671gq8M0.net] なんでココにいるのか? ってツッコミ入れたら負けなんかなw
613 名前:デフォルトの名無しさん mailto:sage [2022/06/23(木) 13:16:25.44 ID:Qj8PYDZt0.net] ちがうでしょ、所謂かまってちゃんでしょ。 慰めてやるべき
614 名前:デフォルトの名無しさん mailto:sage [2022/06/23(木) 13:34:30.38 ID:iXtKw0QdM.net] プログラマからしたらVBAしか出来ないって使えないやつでしかないからなぁ
615 名前:デフォルトの名無しさん mailto:sage [2022/06/23(木) 14:08:36.94 ID:SBEKkY350.net] >>606 無知なのにテキトーに言い過ぎ vbaは特殊で、保守がメインの現場ばかり。vba使えればそれでいい 立ち位置的にはCOBOLに近い
616 名前:デフォルトの名無しさん mailto:sage [2022/06/23(木) 14:41:25.25 ID:RH4NXyqT0.net] >>607 世の中を知らなすぎ どんどんVBAは消えていってる MSすらVBAではなくPython導入しようとしてたが、 openpyxlやxlwingsの出来が良かったのでそれらを薦めてるんだよ 突然IEのサポートが終わるとか言ってる奴くらいだぞ知らないの
617 名前:デフォルトの名無しさん mailto:sage [2022/06/23(木) 14:45:19.51 ID:SBEKkY350.net] >>608 ? だから保守メインって言ってるじゃん 新規開発なんて無く基本的に別言語とは関わりがない
618 名前:デフォルトの名無しさん mailto:sage [2022/06/23(木) 14:51:02.16 ID:9dA5CJ8Sd.net] そのツールでできるならどんなの選んでもいいだろ >>608 みたいなのはそんなこともわからず俺こんなの知ってるぜスゲーだろって言いたいだけのかまってちゃんだろ VBAはそもそも基本的にWindowsPCなら入っているであろうExcelさえあれば 他に何も入れなくても使う事ができるという1点で他にはない優位性があるわけだし 職場によっては変なものを入れるのはNGみたいなところもあるんだから そういう事も踏まえないでただ批判だけするのはおかしい話
619 名前:デフォルトの名無しさん [2022/06/23(木) 15:10:52.41 ID:Ukh7Grgra.net] ほらな やっぱりVBAだろ
620 名前:デフォルトの名無しさん mailto:sage [2022/06/23(木) 15:22:59.47 ID:RH4NXyqT0.net] >>609 VBAからPythonへのリファクタリングが進んでるって話だよ リファクタリングって新規開発ではなく保守なんだけど理解できないようだしなw 今後もVBA使っていくつもりなら、 VBAがやがてどうなるとか調べるのはかまってちゃん以外でも当然の行為だろ ましてや仕事なら尚のこと
621 名前:デフォルトの名無しさん mailto:sage [2022/06/23(木) 15:38:55.20 ID:SBEKkY350.net] >>612 へぇ、それは知らなかったわ、物知りだな~ 具体的にはどんな案件がvbaからpythonになってるの?
622 名前:デフォルトの名無しさん mailto:sage [2022/06/23(木) 15:45:42.70 ID:SBEKkY350.net] エクセル・accessの簡易的・汎用的な入力方法を全部捨てて、 pythonで作り直す案件とはどういうものなのだろうか? 概算するまでもなくものすごく高くなるんだけど、一体どういう案件だとコストダウンになるのだろう? 早く回答してほしいなぁ。まだかなぁ
623 名前:デフォルトの名無しさん mailto:sage [2022/06/23(木) 16:48:28.59 ID:RH4NXyqT0.net] >>614 openpyxlやxlwingsって具体的な名前出してるのに調べたり理解できない奴が煽ってるのか 無知な上に調査も思考もできない役立たずがVBAだけで食っていくとか何の冗談だよ
624 名前:デフォルトの名無しさん mailto:sage [2022/06/23(木) 17:06:30.04 ID:Qj8PYDZt0.net] VBAだけじゃなくて、Excelの一通りの知識も必要では? 事務員なら
625 名前:デフォルトの名無しさん mailto:sage [2022/06/23(木) 17:13:43.84 ID:SBEKkY350.net] >>615 おう見落としてたわサンキューな 勉強してくるわ
626 名前:デフォルトの名無しさん mailto:sage [2022/06/23(木) 19:20:48.18 ID:xtvi5Qi8a.net] 案件って言ってるのに > openpyxlやxlwings とか、アホ丸出しやんw
627 名前:デフォルトの名無しさん mailto:sage [2022/06/23(木) 19:24:07.75 ID:SBEKkY350.net] >>618 その単語だけで内容は伝わるよ
628 名前:デフォルトの名無しさん mailto:sage [2022/06/23(木) 19:41:27.49 ID:T964c/cqM.net] 派遣でvbaてアホすぎるだろ
629 名前:デフォルトの名無しさん mailto:sage [2022/06/23(木) 19:50:50.76 ID:YBqf9Go9H.net] >>620 なんで?>>595 だけどVBAやらされることもあるんだけど、、 まあ大したものじゃないけどね(^_^;)ちなみに女です。
630 名前:デフォルトの名無しさん mailto:sage [2022/06/23(木) 20:41:26.32 ID:8GFyplgN0.net] >>619 内容説明してみ まあ必死ではぐらかすんだろうけどw
631 名前:デフォルトの名無しさん mailto:sage [2022/06/23(木) 20:48:49.23 ID:SBEKkY350.net] >>622 これがあればvbaをpythonに置き換えるコストがクッソ下がる。案件は基本的に何にでも対応できる なかったらめちゃくちゃなコストになるから非現実的だと思ってた
632 名前:デフォルトの名無しさん mailto:sage [2022/06/23(木) 21:09:00.04 ID:8GFyplgN0.net] >>623 > openpyxlやxlwings の説明なんて要らんよ > 具体的にはどんな案件がvbaからpythonになってるの? の回答よろしく
633 名前:デフォルトの名無しさん mailto:sage [2022/06/23(木) 21:25:01.78 ID:SBEKkY350.net] >>624 知らんよ。俺は見たことない どんな案件にでも対応できるからユーザー側がpythonを指定して発注することは少ないだろう 開発側の好みでpythonを選んでいるだけだろうな webサーバーで処理するという点ではエクセル→スプレッドシートの移行にかなり近い。
634 名前:デフォルトの名無しさん mailto:sage [2022/06/23(木) 21:39:08.37 ID:8GFyplgN0.net] 知らんのならいちいち絡んでくるなよ... そもそもどんな内容が伝わると思ってたんだよw
635 名前:デフォルトの名無しさん mailto:sage [2022/06/23(木) 21:55:24.01 ID:SBEKkY350.net] 何でも低コストで作れる以上、具体的な案件なんてもう必要ないだろう
636 名前:デフォルトの名無しさん mailto:sage [2022/06/23(木) 22:56:14.90 ID:Qj8PYDZt0.net] 会社の人事部の仲良い人に聞いたけど、派遣君でVBAできるヤツは希少な人材と言っていたぞ ましてやExcel自体まともに操作できない派遣が多い中で。
637 名前:デフォルトの名無しさん [2022/06/24(金) 03:54:27.16 ID:ctS3zPLY0.net] まぁ手広くやるかVBA極めるかだろうけどある程度は手広くやらないとね 「VBAは死ぬ」と言われてもう随分経つけど一向に死ぬ気配はないのは確かだけど VBAしか出来ないとOfficeに乗っかったアプリしか開発出来ない井の中の蛙状態になるのも確か。 それに他言語やってるとその言語の考え方も取り入れてVBA作るようになるから何かひとつやるにしても取れる手段が増えるんだよね。 まぁ個人的にはPythonは下手に手をつけると算数しか出来ないバカな俺には数学出来ないといけないお仕事が降ってきそうでちょっと敬遠するけど。 後JAVAは個人的に肌に合わなかったのでやって良かったってなるのか分からないけど、 JavaScriptはWeb系やるならまず必須になるし、とりま後はC#辺りやっとけばいいんじゃないかと思う。
638 名前:デフォルトの名無しさん [2022/06/24(金) 04:14:34.15 ID:ctS3zPLY0.net] 後、このスレには俺みたいなジジイが結構いるみたいだから話しておくと、 遠い昔まだPCがマイコンとか呼ばれていた頃、すがやみつるって「ゲームセンターあらし」とかいう漫画描いてた人が「こんにちはマイコン」ってBASICでブロックの無いブロック崩しみたいなののプログラムを作る工程を漫画で説明しながら描いてたんだけど、 ちょっと前に「こんにちはPython 」って同じ感じの内容をPython でやってるのを出してたから話のネタに買ってもいいかも知れないよ。 ただ、新品買うほどの価値があるかは微妙だから中古でもいいと思うけど。 まぁスレ違いだからこの辺にしとくわ。
639 名前:デフォルトの名無しさん [2022/06/24(金) 04:39:40.48 ID:61TcLrsp0.net] activecellを使って掛け算をしたい時どうすればいいのか分かりません 教えていただけたら嬉しいです。 inputboxで数値を入力してその数値を使って計算したいです。計算する時にactivecellを使いたいです
640 名前:デフォルトの名無しさん (ワッチョイ 1768-GvQ2) mailto:sage [2022/06/24(金) 07:42:23 ID:24qb8CGk0.net] >>631 Sub foo() Debug.Print ActiveCell.Value * InputBox("") End Sub
641 名前:デフォルトの名無しさん (アウアウウー Sa47-vQ73) [2022/06/24(金) 09:49:37 ID:K2we1Lara.net] こういうのが尼崎事件を起こすんだろうな
642 名前:デフォルトの名無しさん [2022/06/24(金) 12:20:36.40 ID:SlsiDUV+a.net] 需要と供給
643 名前:デフォルトの名無しさん mailto:sage [2022/06/24(金) 15:06:54.11 ID:kZFfj4TG0.net] 難しい話ね。 これから他の言語も必要なら習得の必要あるしね。
644 名前:デフォルトの名無しさん [2022/06/24(金) 15:26:03.25 ID:bvc+MoD20.net] VBA覚えるの大変ですね 理解してコピペできるくらいにはなりたい
645 名前:デフォルトの名無しさん mailto:sage [2022/06/24(金) 15:31:46.16 ID:RLAl6U0RH.net] 一度VBAエキスパートとか取るくらい勉強すれば 毎回Offsetの横は行が先か列が先かどっちだったかな?って(Resizeでも同じことやってる)やってるワイでも 大体コピペで作れるくらいには成長するよw
646 名前:デフォルトの名無しさん [2022/06/24(金) 19:49:28.19 ID:bvc+MoD20.net] >>637 ありがとう やってみるか 参考書検討しようかな
647 名前:デフォルトの名無しさん mailto:sage [2022/06/24(金) 20:26:28.92 ID:oJCwQA/d0.net] コピペしたVBAってみんな捨てて去ってるのかな、貰ったことないかも。
648 名前:デフォルトの名無しさん mailto:sage [2022/06/24(金) 21:29:08.60 ID:kZFfj4TG0.net] コピペはダメと教わったがな最初の会社で。 あちぃなしかし今日は
649 名前:デフォルトの名無しさん mailto:sage [2022/06/24(金) 21:34:54.88 ID:p6zHePCT0.net] 熱がこもって32度あるわ
650 名前:デフォルトの名無しさん mailto:sage [2022/06/24(金) 21:35:55.33 ID:p6zHePCT0.net] コピペしてそのまま使うことはほぼなくなる コンパクトにまとめないと、後で見て何書いてるかわからなくなる
651 名前:デフォルトの名無しさん mailto:sage [2022/06/24(金) 23:00:17.91 ID:oJCwQA/d0.net] ネットにうpしてあった100行のやつをコピペして100000行にしてる、コンパクトという発想がなかったわ。そもそも意味わかんない行もあるけど消すと動かないし。 後任に渡そうと思ったけど恥ずかしいからやめとくか...。 おまえら上級者なんだね。
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 名前:過去ログ ★ [[過去ログ]] ■ このスレッドは過去ログ倉庫に格納されています