◎正当な理由による書き込みの削除について:      生島英之とみられる方へ:

Excel VBA 質問スレ Part76 YouTube動画>3本 ->画像>10枚


動画、画像抽出 || この掲示板へ 類似スレ 掲示板一覧 人気スレ 動画人気順

このスレへの固定リンク: http://5chb.net/r/tech/1651339421/
ヒント:5chスレのurlに http://xxxx.5chb.net/xxxx のようにbを入れるだけでここでスレ保存、閲覧できます。

1デフォルトの名無しさん (ブーイモ MMff-XZ6m)2022/05/01(日) 02:23:41.78ID:2t63WK/jM
!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
↑2行に減ってるけど、同じ内容を3行に増やして貼り付けること

ExcelのVBAに関する質問スレ
コード書き込みや作成依頼もOK

次スレは>>980が立てること
無理なら細かく安価指定

※前スレ
Excel VBA 質問スレ Part75
http://2chb.net/r/tech/1644384272/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured

2デフォルトの名無しさん (ワッチョイ 27da-l/ZD)2022/05/01(日) 10:10:19.02ID:Pk0oKD+E0
2げろ

3デフォルトの名無しさん (スップ Sd7f-TUas)2022/05/01(日) 14:46:30.73ID:q0kLnjNbd
Excel使い方すらわからない人はお断りです
Excel VBAが何かもわからない人もお断りです

4デフォルトの名無しさん (ブーイモ MMcb-LnX+)2022/05/01(日) 16:08:24.73ID:CXxh8/QkM
我々の承認欲求を満たしてくれる質問お待ちしてます

5デフォルトの名無しさん (ワッチョイ df4f-bbcD)2022/05/01(日) 17:04:11.22ID:PgWgEC/y0
向こうのスレ消化してから書き込めカス共

6デフォルトの名無しさん (ワッチョイ 7fda-Nh0L)2022/05/01(日) 19:54:56.03ID:Om3L9uk+0
前スレ終わってないのに立てる >>1 が悪い

7デフォルトの名無しさん (ワッチョイ 6793-ow/s)2022/05/01(日) 21:27:37.77ID:geOevaoi0
>>6
終わってから立てたらスレの連続性が途絶えるだろ
考えて物言え知恵足らずが

8デフォルトの名無しさん (ワッチョイ df01-nj6J)2022/05/01(日) 21:39:32.49ID:Rd1MW2220
レス古事記の相手すんなよ...

9デフォルトの名無しさん (ワッチョイ 27da-l/ZD)2022/05/02(月) 19:28:34.96ID:MoQSVCv50
過去にもしばらくスレ立て放置プレイされた事あったぜ

10デフォルトの名無しさん (ワッチョイ 0702-Nh0L)2022/05/02(月) 23:18:57.97ID:X95f3WhM0
よろしくお願いします。以下の日本語で書いた部分に相当するような
繰り返し文ってありますでしょうか。

イメージしているのは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デフォルトの名無しさん (ワッチョイ 7fbb-sZ5+)2022/05/02(月) 23:38:34.90ID:hdDLukhc0
>>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デフォルトの名無しさん (ワッチョイ a763-PwpY)2022/05/03(火) 10:09:18.61ID:F3b8ltuB0
先生方教えて!
エクセルを1枚1枚開いてvbaによって加工したい場合、
マクロの表示からそのvbaを選ぶのが一般的なんでしょうか。

FileDialogをつかって複数エクセルを一気に加工するほうが
自分は楽なんですが契約社員にはわかりづらいそうで。。

13デフォルトの名無しさん (ワッチョイ df4f-bbcD)2022/05/03(火) 10:15:31.86ID:MA4dMZuw0
一般的かどうかは分からんけど
ファイルダイアログを開いて
設定したパスをどこかのセルに設定しておいて
実行ボタンでそのセルを読みに行くほうが
複数のブックを読みに行く場合には親切

14デフォルトの名無しさん (ワッチョイ bf8c-pWxw)2022/05/03(火) 13:25:25.46ID:xaGln49G0
理解が十分でない契約社員には直感的にわかりやすい上記の方法
そのうち慣れて面倒になってきたら下記の方法(バッチ)
2つのアプローチを用意するのがいいかもしれませんね

コンピュータになれていなかったり入れ替わりが多い契約社員というところがポイントですね
私もVBAを他人に提供することが多いから参考になるわー

15デフォルトの名無しさん (ワッチョイ 27da-l/ZD)2022/05/03(火) 13:57:26.99ID:nOtJseDM0
Nextじゃなくて、Next iって書かなきゃあかんと言われたよ

16デフォルトの名無しさん (アウアウウー Saab-wueb)2022/05/03(火) 14:12:22.20ID:utR4VoxQa
iが足りなかったからか

17デフォルトの名無しさん (ワッチョイ 2701-XZ6m)2022/05/04(水) 14:54:21.99ID:Bmz10qTz0
前スレ987で質問した者です。
アドバイスありがとうございます。
2019に変わる際にPCがwin7からwin10に変わり性能もアップしたのでVBA処理も早くなるかと思っていたのですがそのようなバグが出るようになりました。

自分1人で使ってる範囲では良いのですが複数が利用しているため質問させて頂きました。

PC性能があがりEXCELがついてこれてない可能性もありますね。

18デフォルトの名無しさん (ワッチョイ 27da-l/ZD)2022/05/04(水) 16:13:00.23ID:waxP/JpN0
Excel板なら人間の性能を上げろって揶揄されるからな

19デフォルトの名無しさん (ワッチョイ 7fda-Nh0L)2022/05/04(水) 19:42:48.21ID:3VW2nuLk0
win7がwin10になったのとPCの性能は別だからな
古いPCのOSだけ変えたのかもしれんし

20デフォルトの名無しさん (ワッチョイ 2701-XZ6m)2022/05/04(水) 20:57:36.39ID:Bmz10qTz0
説明不足で申し訳ないです。
win7からwin10でPC変わってます。
個人的に所有しているPCではないので具体的なスペックはわかりません。

21デフォルトの名無しさん (ワンミングク MMbf-+wkU)2022/05/04(水) 21:05:48.55ID:hxvZ+FeqM
>>20
所有権の問題ではなく馬鹿だからわからないだけでは?

22デフォルトの名無しさん (ワッチョイ 2701-XZ6m)2022/05/04(水) 21:14:48.05ID:Bmz10qTz0
申し訳ありません、具体的なスペックが提示できないようではアドバイスも難しいですもんね。
これまで頂いたアドバイスでもう少し試行錯誤してみたいと思います。ありがとうございました。

23デフォルトの名無しさん (ワッチョイ dfda-Nh0L)2022/05/04(水) 22:17:07.14ID:hNQ/TBre0
数秒待たせればエラーに成らないなら、原因判明するまでは待たせる方式で
或いは
最終的に鳥瞰図が欲しいなら、数値データを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)2022/05/04(水) 23:12:41.36ID:Bmz10qTz0
>>23
ありがとうございます。勉強になります。
今のところはエラーが出た際バッファーの時間を調整して対応しています。

とりあえずは動いているので良いのですが書き方としてどうなのだろうと思いまして…
もっとスマートに解決方法があればと思い質問させて頂きました。
アドバイス頂きありがとうございます。アドバイスを元に検討してみたいと思います。

25デフォルトの名無しさん (ワッチョイ 2701-I+xZ)2022/05/04(水) 23:54:17.61ID:4EN2kx2R0
>>24
むかしファイルメーカーから画像を取り出してExcelに貼り付けるマクロ書いたことあるわ。
クリップボードからExcelに貼るときにちょいちょいエラーが出て苦労した。
最終的にはエラーが出たところからリランできるようにして人力で最後まで走り切った。
継続的に長い期間使うマクロではなかったんでね。

クリップボードって入れ終わるタイミングが掴めないから処理が難しいね。
オレが調べた限りでは完全に技術的に解決する方法は見つけられなかった。
完全自動化は一旦棚に上げておいて、人間の補助も込みで運用を考えた方が現実的かも。

26デフォルトの名無しさん (ワッチョイ 67da-bwV9)2022/05/05(木) 00:43:02.91ID:vV+xUHQR0
IEとセッション共有するにはどうすればいい?

27デフォルトの名無しさん (スププ Sdff-hviI)2022/05/05(木) 08:37:44.29ID:GOdKeYkud
>>12
VBSでExcelファイルをドラッグドロップお薦め
Visible = False でExcel画面すら見ずに処理が終わる

28デフォルトの名無しさん (ワッチョイ df4f-bbcD)2022/05/05(木) 09:37:07.07ID:yaYLZP+d0
>>26
まずIEはセッションなど持っていない。
そして今IE は使えないだろう?
強制的にEdgeにされるはずだ。
そしてそのEdge も当然セッションなど持っていない。
EdgeもIEもクライアントサイドのものだからだ。
セッションはサーバーサイドの概念だからな。

そしてサーバーサイドをEXCELのVBA で制御するとか意味分からん。
大人しくAsp.NetでもやっておくかせめてVBS で制御しとけ。

29デフォルトの名無しさん (ワッチョイ 67da-bwV9)2022/05/05(木) 11:18:53.52ID:vV+xUHQR0
わざとだろうけど、EdgeでもCookieでもいいよ。

30デフォルトの名無しさん (ワッチョイ 0702-Nh0L)2022/05/05(木) 11:27:47.75ID:BSjK1PJD0
>>11
ありがとうございます。

31デフォルトの名無しさん (ワッチョイ 8701-6zUF)2022/05/05(木) 16:06:00.40ID:FeY8iOM40
【ひろゆき】テレビ見る奴はバカ!?正論論破!
「テレビ見てる奴バカすぎだろ!!マジでバカしかいない!!」聞けば納得の正論!!

【ひろゆき】みなさん要注意です…テレビ見ると頭悪くなります
⇒テレビが馬鹿向けに作られてる衝撃の理由がヤバ過ぎる…

【ひろゆき】マジで「ざまあみろ」って思いましたね。
●●する奴にテレビ業界は破壊されました…ひろゆきがテレビがオワコン化した理由を話す

【ひろゆき】芸能界の闇!松本人志とか東野幸治はエクセルすら使えないんだよ?
ワイドナショーで言ってたw【教えて!ひろゆき先生/切り抜き】

【ひろゆき】なぜテレビは面白くなくなったのか?
その理由をひろゆきとひげおやじが分析する【切り抜き/論破/TV】

32デフォルトの名無しさん (ワッチョイ 9f02-PvPk)2022/05/07(土) 10:41:14.26ID:NJT6jW780
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デフォルトの名無しさん (アウアウウー Sa1f-oKCf)2022/05/07(土) 11:01:22.01ID:QtF4T6fHa
ascの結果をstringに変換しないで入れたからかな
出先なので試せないが

34デフォルトの名無しさん (アウアウウー Sa1f-cwrN)2022/05/07(土) 11:52:42.37ID:/qcwjpRWa
'a
str = "転"
str = Asc(str)
Debug.Print str
str = Hex(str)
Debug.Print str
a = str

ってやってみて自分の思った通りになってるか確認してみそ

35デフォルトの名無しさん (ワッチョイ b7ce-PvPk)2022/05/07(土) 11:59:35.71ID:WpJq4eDb0
>>32
Asc関数は戻り値が数値型なので、bとcはほぼ同等になる
aだけが途中経過が明らかに違う

36デフォルトの名無しさん (ワッチョイ b7ce-PvPk)2022/05/07(土) 12:05:46.33ID:WpJq4eDb0
公式ドキュメントには、Hex関数の返り値は8桁以下の文字列と書いてあるのに16桁返ってくるな
どういうことだ?
https://docs.microsoft.com/en-us/office/vba/language/reference/user-interface-help/hex-function

37デフォルトの名無しさん (ワッチョイ b7ce-PvPk)2022/05/07(土) 12:10:46.75ID:WpJq4eDb0
暗黙の型変換は必要最小限の型に変換されるってルールだったはずで、そのロジックに何か問題がある気がする
文字コード(-27811)はIntegerになるはずがLongLongに変換されてしまっていて、さらにHex関数がなぜかエラーを返さない

38デフォルトの名無しさん (ワッチョイ b7ce-PvPk)2022/05/07(土) 13:00:38.34ID:WpJq4eDb0
うーん、これはちょっと想定外の結果、かなあ
知らないでいるとハマりそうだわ

Sub test2()
  s = "&H8"
  For i = 1 To 15
    s = s & "0"
    Debug.Print Hex(s)
  Next
End Sub

39デフォルトの名無しさん (ワッチョイ 17da-zDU0)2022/05/07(土) 15:18:31.97ID:QipuKWLV0
>>32
strは文字列型だからaの場合str = Asc("転")でやっていることは実質的にstr = cstr(Asc("転")).
だからa,b,cはそれぞれ,hex(cstr(Asc("転"))),hex(Asc("転")),hex(Asc"転"))となりaだけ途中で数字ではなくて文字列にかわっているので
対応するhexの値が異なるのは当然.

40デフォルトの名無しさん (スップ Sd2a-414f)2022/05/07(土) 15:39:23.00ID:Be/sY8NCd
型を意識しないで作るVBAerによくある勘違いというだけ

41デフォルトの名無しさん (アウアウウー Sa1f-oKCf)2022/05/07(土) 16:06:22.67ID:7L5Eu3N/a
>>38
型宣言しないタイプ?

42デフォルトの名無しさん (ワッチョイ 6a7d-4pAe)2022/05/07(土) 17:29:10.04ID:stouWQDp0
VBAってマトモな会社は使用禁止でしょ

43デフォルトの名無しさん (ワッチョイ b7ce-PvPk)2022/05/07(土) 19:21:47.63ID:WpJq4eDb0
>>41
>>38のケースは宣言してもしなくても結果同じでは

44デフォルトの名無しさん (ワッチョイ b7ce-PvPk)2022/05/07(土) 19:23:32.20ID:WpJq4eDb0
>>39-40
公式ドキュメントに8文字以下と書いてあるのに、たまに16文字返ってくるのは単なる勘違いで済む問題じゃないと思うぞ

45デフォルトの名無しさん (アウアウウー Sa1f-cwrN)2022/05/07(土) 20:33:59.56ID:gH0nu0qIa
>>44
64bit 版のドキュメントが間に合ってないだけだろ

46デフォルトの名無しさん (ワッチョイ 17da-oDvp)2022/05/07(土) 21:40:19.85ID:QipuKWLV0
>>44
実際の結果と説明が食い違ってたら説明の方が間違っている(修正が遅れている)だけだと思うが

47デフォルトの名無しさん (ワッチョイ b7ce-PvPk)2022/05/07(土) 21:55:14.08ID:WpJq4eDb0
Officeが完全64bit対応になったのは2010から
12年遅れか……

48デフォルトの名無しさん (アウアウウー Sa1f-cwrN)2022/05/07(土) 22:11:45.00ID:9QKKUGlra
>>46
まあ単なるバグの可能性は "0" ではないけど

49デフォルトの名無しさん (ワッチョイ 8f68-e+q+)2022/05/07(土) 22:14:36.93ID:T2FkQFbN0
>>38
これはバグでは

50デフォルトの名無しさん (ワッチョイ 0b93-vVOv)2022/05/07(土) 22:18:37.86ID:cppQitqZ0
>>47
64bitが標準になったのは2019からだけど

5132 (ワッチョイ 9f02-PvPk)2022/05/08(日) 08:41:56.79ID:mrWBx7yB0
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デフォルトの名無しさん (ワッチョイ 8f68-e+q+)2022/05/08(日) 19:44:09.25ID:J4Oeet0G0
kou

'a
str = "転"
long_ = Asc(str)

53デフォルトの名無しさん (ワッチョイ 7eda-PvPk)2022/05/08(日) 22:42:32.67ID:CUGu1qGH0
high は何のため

54デフォルトの名無しさん (ワッチョイ 2f2f-vjB4)2022/05/09(月) 03:05:49.72ID:1tzp5qwq0
>>37
>暗黙の型変換は必要最小限の型に変換されるってルール
そんなルール聞いたことないが、どこ情報なんだ?

55デフォルトの名無しさん (ワッチョイ 43da-WAXe)2022/05/09(月) 14:49:08.99ID:Ww9cdHsy0
脳内思い込み
一番タチ悪い

56デフォルトの名無しさん (ワッチョイ 3ebb-HNGk)2022/05/09(月) 18:18:14.33ID:7ATo4dDz0
コピー元のブックのシート上のチェックボックス(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)ではダメなのでしょうか

57デフォルトの名無しさん (ワッチョイ 6aad-HkNE)2022/05/10(火) 10:07:55.18ID:4FhYKkQU0
ユーザーフォームのコントロールの位置調整について質問です。

テキストボックス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間)が均等になるだけで、
今回求めている結果にはなりませんでした。

58デフォルトの名無しさん (ラクッペペ MMe6-u2F+)2022/05/10(火) 10:19:04.03ID:ODIjuWluM
一生に一度しか使用しない機能は実装されません

59デフォルトの名無しさん (ワッチョイ 6ada-PvPk)2022/05/10(火) 10:49:36.48ID:G5I31YZG0
D A B C を左右均等に並べたいんじゃ無いのか?
D-A-B-C とか、スペースを-で表さないと、コッチからすれば説明文の上下は一緒に読めるんだが?
D---A-B-C とかか?

6057 (ワッチョイ 6aad-HkNE)2022/05/10(火) 11:44:31.14ID:4FhYKkQU0
>>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

61デフォルトの名無しさん (ワッチョイ 6ada-PvPk)2022/05/10(火) 11:55:55.13ID:G5I31YZG0
Cを必要なだけ右に寄せてからその操作すれば?
ぴったり位置合わせしたいとかなら  https://www.moug.net/tech/exvba/0120023.html 辺り参考に

62デフォルトの名無しさん (ワッチョイ 8f68-e+q+)2022/05/10(火) 11:58:47.56ID:Q/OuvBXU0
>>56
どのチェックボックス?フォーム?activeX?

63デフォルトの名無しさん (スププ Sd8a-y2gA)2022/05/10(火) 13:26:52.13ID:EvytVRjpd
>>57
Controls.Addでマクロにパーツを作らせて位置を指定するか自動計算させれば簡単
自分でイベント作る必要はあるかも

6457 (ワッチョイ 6aad-HkNE)2022/05/10(火) 21:53:08.05ID:4FhYKkQU0
>>63
ありがとうございます。調べてやってみます!

65デフォルトの名無しさん (ワッチョイ 6aad-HkNE)2022/05/10(火) 21:54:52.33ID:4FhYKkQU0
>>61
ありがとうございます。参考にします。

6656 (ワッチョイ 3ebb-uszm)2022/05/11(水) 07:58:45.59ID:VwZpfkps0
>>62
「チェックボックス」だけの情報だと二つあるんですね
すみません。
調べたところフォームのほうのチェックボックスでした。

67デフォルトの名無しさん (ワッチョイ 2301-PvPk)2022/05/12(木) 01:22:53.69ID:UrRQ3K070
'これ実行するとどうなりますか?
'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

68デフォルトの名無しさん (ワッチョイ b7ce-PvPk)2022/05/12(木) 02:12:42.08ID:y5qWaFnT0

69デフォルトの名無しさん (ワッチョイ be01-S2Xa)2022/05/13(金) 15:49:14.84ID:m1gysKVC0
Dim a
a = Range("A1:B2")

これだけでaが2×2の配列になるとたった今知ったのですが
このことを手放しに使って良いのでしょうか、それとも邪道だから
Dim a(2, 2)なり要素数まで指定した方が良いのでしょうか。

70デフォルトの名無しさん (ワッチョイ b7ce-PvPk)2022/05/13(金) 15:56:46.69ID:Bn5ry0500
>>69
問題ない
VBA使えるやつならみんな知ってる

71デフォルトの名無しさん (ワッチョイ d35f-PvPk)2022/05/13(金) 16:05:23.39ID:zF4dJdoD0
それ便利だけど誤読しやすいので静的メソッドにしてる
ArrayExt.FromRange(Me.Range("A1:B2"))
みたいな

72デフォルトの名無しさん (ワッチョイ 9f5f-pnAN)2022/05/13(金) 19:41:50.80ID:q/KvZ9/90
officescript調べてみたけど意外と分かりやすかった
これならVBAがなくなっても大丈夫そう

73デフォルトの名無しさん (ワッチョイ 9f5f-pnAN)2022/05/13(金) 19:50:05.37ID:q/KvZ9/90
>>69
型使わないとバリアント型だから二次元配列になるわけか

74デフォルトの名無しさん (ワッチョイ 9f5f-pnAN)2022/05/13(金) 19:53:17.10ID:q/KvZ9/90
ちなみに参考にしてる人はこう書いてた
Dim a As Variant
a = Range("A1:B2").Value

75デフォルトの名無しさん (エアペラ SDd7-vVOv)2022/05/13(金) 22:54:29.72ID:BcFt2CuGD
aは要するにポインタだからな

76デフォルトの名無しさん (ワッチョイ 7eda-PvPk)2022/05/13(金) 22:58:14.08ID:JesbR9jP0
c以上ならポインた

77デフォルトの名無しさん (アウアウウー Sa1f-PvPk)2022/05/13(金) 23:28:52.57ID:94QyLQ1Xa
>>69
誰も書いていないので驚いたが、
その方法でもいい、のではなくて、
その方法しかない。
あとは Variant を明示するかしないかの違いだけ。

78デフォルトの名無しさん (ワッチョイ ffbb-bUW4)2022/05/14(土) 01:49:07.38ID:5NJ35cqH0
セルの値を取得して書き換えて…ってやるより二次元配列で処理する方が体感3倍くらい速いから、高速化したいなら配列使えばいいよね
ただ他の人もわかるようにとかメンテナンス性考えると避けた方が無難だったり、ケースバイケース

79デフォルトの名無しさん (ワッチョイ 7dda-o6RS)2022/05/14(土) 04:08:54.94ID:wh2tsa6Q0
他人の使い勝手なんか微塵も考えていないヤツが大半だろ現場じゃあ

80デフォルトの名無しさん (ワッチョイ bfce-yvGd)2022/05/14(土) 04:13:11.38ID:JIfRBOPe0
Variantはポインタじゃなくて共用体
そもそもVariantオブジェクトはVBA固有の機能じゃなくてWindowsに組み込まれてて、別の言語からも自由に使える
どういう場面で役に立つのかわからんけど

81デフォルトの名無しさん (ラクッペペ MM17-3Kew)2022/05/14(土) 04:32:51.17ID:bV9+cuz+M
ポインタ的な使い方するならVariant型ではなくてObject型
Dim a As Object (総称オブジェクト型)
Rangeオブジェクトに特定するなら
Dim a As Range (固有オブジェクト型)

82デフォルトの名無しさん (ワッチョイ 9b4f-aONe)2022/05/14(土) 08:18:11.37ID:ddohEedh0
Variantってよく分からん型だよな
Objectもそうでないものも仕舞えるし
.Netで封印されたのも頷ける

83デフォルトの名無しさん (ワッチョイ 637c-Lk/W)2022/05/14(土) 10:07:30.24ID:BHEGSPOf0
>>78
配列の方が断然早いよね。
富○通がVBで作ったEXCEL名簿出力アプリが5時間以上かかってるのが、俺がEXCELVBAで組んだのは30分で終わる。
しかも富○通のはデータ1行ごとにコピペしてるので
動かしてる間コピーのバッファが奪われて他の作業が一切できない。

84デフォルトの名無しさん (ワッチョイ d710-aONe)2022/05/14(土) 10:48:24.07ID:0kHlnQQT0
オレオレ自慢

85デフォルトの名無しさん (スップ Sd03-lIli)2022/05/14(土) 10:57:42.22ID:jjfnS8MSd
VBのコードみてVBAにする際に少し手直しした程度なんだと思うが
どの程度のデータか不明だけど30分もかかるような処理も自分としてはNGだわ
まあどっちも夜流して朝みればいいなら5時間でも一緒程度

86デフォルトの名無しさん (オッペケ Sr99-YYQQ)2022/05/14(土) 11:08:32.24ID:XMrr4JDhr
何分とかかかる時点でRDBとか外出ししてやれないかとか考えちゃう
Excelには荷が重いんじゃないかとね

87デフォルトの名無しさん (アウアウウー Sa31-bUW4)2022/05/14(土) 11:27:37.36ID:x+cFGSU+a
どんだけ長い処理でも耐えられて2分までだわ
30分かかるとか論外

88デフォルトの名無しさん (スププ Sd2f-xGWD)2022/05/14(土) 11:39:20.09ID:tj4PNqc2d
そんなに処理に時間がかかるってことは多分生データが数Gクラスだろうからaccessやexcelでは非効率だろう
ここに>83の間抜けさがよく現れてる

89デフォルトの名無しさん (ワッチョイ 7b42-Suzn)2022/05/14(土) 11:43:13.01ID:5E8BmIH10
そんな大規模なデータを扱ったことないからわからないけど
30分もかかったら途中で無限ループに入ってんだろなと思って止めてしまうわ

90デフォルトの名無しさん (ワッチョイ 6768-mOD9)2022/05/14(土) 11:59:12.73ID:VTp6T5x/0
vbaを30分も動かすってどんな処理だよ
あとあまり長い時間動かしっぱなしにすると大体フリーズしてるぞ

91デフォルトの名無しさん (スップ Sd03-lIli)2022/05/14(土) 12:14:29.94ID:jjfnS8MSd
どんな処理でも構わないけどExcelのプロセスが起動してるときに新規のExcel起動>ファイルを開くで開けばいいけど
無意識のうちにダブルクリックなんかで開こうとしたらVBA実行中のプロセスで開かないとも限らないから
30分の拘束ってのは日中ならなし

92デフォルトの名無しさん (ワッチョイ bfce-yvGd)2022/05/14(土) 12:55:50.88ID:JIfRBOPe0
そんなに速くしたら、フリーズしてないか監視する仕事の人がクビになっちゃうだろ
ああいうのは、わざと1日かかるように作ってあるんだよ

93デフォルトの名無しさん (ワッチョイ 7dda-o6RS)2022/05/14(土) 13:31:33.15ID:wh2tsa6Q0
なんでExcelエキスパート集団の富○通がそんなクソ遅いマクロ書くのか不思議だ。

94デフォルトの名無しさん (ワッチョイ 6768-mOD9)2022/05/14(土) 15:15:38.33ID:VTp6T5x/0
>Excelエキスパート集団
それはない

95デフォルトの名無しさん (スップ Sdcf-lPuq)2022/05/14(土) 16:41:13.43ID:9uXA4NxPd
富士通が直接作っているのでないだろうし、たった一つの例で全部がわかったつもりになる幼稚なアホ

96デフォルトの名無しさん (ワッチョイ f101-5bcZ)2022/05/14(土) 18:27:44.98ID:msymY1pp0
あんまり処理に時間かかるようなやつならプログレスバーやらひとまず動いてることがわかるようなものを入れとくわ

97デフォルトの名無しさん (ワッチョイ 17ff-0svr)2022/05/14(土) 18:32:44.86ID:qaSd7ep40
1.xlsx、2.xlsx、3.xlsx、・・・、1000.xlsxという連番のブックがあって
そのすべてにssssというシートがあって
そのすべてのD2(R2C4)セルにデータがあるとして

あるブックのA1~A1000に1~1000が入力してあって、
それぞれの隣(B1~B1000)に対応するブック(B500には500.xlsx)の
シートssssのD2セルの中身を持ってくるのってどうすればいいですか?

ExecuteExcel4Macroとか使ってそんなに難しくなくやれるかと思いきやまるでうまくいかない…

98デフォルトの名無しさん (エアペラ SD1d-I8Wv)2022/05/14(土) 18:58:29.62ID:lDPvxjtFD
>>94
方眼紙はじめとした使い方への皮肉だろ

99デフォルトの名無しさん (ワッチョイ 2d5f-yvGd)2022/05/14(土) 19:14:09.21ID:yHnyJFGQ0
>>97
他に条件や例外がないなら自分で書いてる通り「そんなに難しくない」が、どこで詰まってるの?

100デフォルトの名無しさん (ワッチョイ 6768-mOD9)2022/05/14(土) 19:20:25.44ID:VTp6T5x/0
>>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

101デフォルトの名無しさん (ワッチョイ f101-5bcZ)2022/05/14(土) 19:26:19.82ID:msymY1pp0
内容あまり理解出来てないのかもしれないけど

B500の行取得してワークブックオープンで引数ファイルパス500で開いてデータ抜きたいところ抜けば良いのではないでしょうか。

4使うあたり処理を重くしたくないのでワークブックを開きたくないようにも見えますが

102デフォルトの名無しさん (スップ Sd03-lIli)2022/05/14(土) 19:51:35.87ID:jjfnS8MSd
こんな感じになる文字列を作ればいけないか?(フォルダ名とファイル名を変更していく)
MsgBox ExecuteExcel4Macro("'フォルダ名\[1000.xlsx]ssss'!R2C4")

103デフォルトの名無しさん (ワッチョイ 91da-Hs+l)2022/05/15(日) 01:22:22.35ID:xmtudDvv0
MSHTML.HTMLDocumentのbody.outerHtmlに何か代入しようとすると、
あるPCでは問題なく出来るのに、
別のPCではアプリケーション定義のエラーがでる
何故?
ソースは同じなのに

104デフォルトの名無しさん (スフッ Sd2f-xGWD)2022/05/15(日) 08:18:10.46ID:Jt2O43PNd
参照設定は?

105デフォルトの名無しさん (ワッチョイ 3d01-yvGd)2022/05/15(日) 13:24:19.34ID:K6VbLnva0
>>68
即レスいただいてたのに遅くなりました。ありがとうございます。
常識なんですね。とてもためになりました。

少数が原因だろうと思いつつもローカルウィンドウの値は整数だし
Fixしても発生するので困ってました。ありがとうございます。

106デフォルトの名無しさん (ワッチョイ 91da-Hs+l)2022/05/15(日) 15:21:30.27ID:xmtudDvv0
>>104
してある
してないと違うエラーメッセージだったような

107デフォルトの名無しさん (ササクッテロ Spa5-nyNy)2022/05/15(日) 17:45:40.00ID:SLK6Xy6bp
>>106
参照不可はない?

108デフォルトの名無しさん (ササクッテロ Spa5-nyNy)2022/05/15(日) 17:49:03.93ID:i2BwfRJap
>>83
依頼元の情報提供不足。対象件数とか。

109デフォルトの名無しさん (ワッチョイ 2b7c-I8Wv)2022/05/15(日) 20:29:54.61ID:EFSZcQ6p0
VBAで作ったブックを指定するにはどうやるのがいいんでしょうか
VBAで複数ブックを作るとBook1、Book2、…となりますが、
どうやってそれぞれのブックを指定してやればいいのかが分かりません

110デフォルトの名無しさん (ワッチョイ 1f17-5bcZ)2022/05/15(日) 20:48:22.92ID:xHyGsu5B0
ブックの作成の際にワークブック変数にセットする
set=workbooks.add

111デフォルトの名無しさん (ワッチョイ f101-5bcZ)2022/05/15(日) 21:20:44.06ID:i/ziY72x0
変数に格納するってのは名前をつけてあげるみたいな意味合いがある気がする

変数作ってセットすれば呼び出しやすい

112デフォルトの名無しさん (ワッチョイ ebda-yvGd)2022/05/15(日) 22:58:08.71ID:e0cA7YQF0
Set wb = ThisWorkbook
Set ws = wb.Worksheets("sheet名")
とやっといて、
カーソル移動したいだけなのに、
ws.Range("B3").Select
とやったら、
「RangeクラスのSelectメソッドが失敗しました」
と出て動かなくなって・・・???

原因はRange.Selectやる前に
当該sheetをActivateしていないことだと
今日、ようやく知ったアタシが通り過ぎますよ・・・

11397 (ワッチョイ 17ff-0svr)2022/05/15(日) 23:36:58.31ID:VONG1GsX0
>>101
おっしゃる通りワークブックを開きたくなかったんです

諦めて>>100さんの手法でいきました

ありがとうございました。

114デフォルトの名無しさん (ワッチョイ ffbb-bUW4)2022/05/15(日) 23:39:04.92ID:km049kvp0
>>112
VBAやっててSelect使うことなんてほぼ無いんだからその仕様を知らないことを気にしなくていい

115デフォルトの名無しさん (ワッチョイ cba5-fImR)2022/05/15(日) 23:53:26.84ID:sFHTlWBy0
>>113
http://officetanaka.net/excel/vba/tips/tips28.htm
フルパス指定すればいけるっぽいけどそーゆー話ではないのかな?

116デフォルトの名無しさん (ワッチョイ 3fac-YYQQ)2022/05/16(月) 00:14:35.90ID:D08mu/WY0
セルとかSelectするのは最後くらいだもんなあ

117デフォルトの名無しさん (ワッチョイ 91da-Hs+l)2022/05/16(月) 01:37:32.91ID:PWfPx8Kl0
>>107
無いんだよね
代入が出来ないだけで表示は出来るんだけど、
""の空文字すら入れられないのは何なのか…
型が一致しないエラーでもないし
仕方がないからDocument.writeで代用したけど

118デフォルトの名無しさん (ワッチョイ ebda-Lh2i)2022/05/16(月) 07:25:27.55ID:x3MSJzWb0
>>114
気象庁の過去気象データ1時間値を
DLしようとしたら、
1日ごとにURLが違うので、
1日分を読んではコピペさせてるんだけど・・・
単体項目なら1年分一度に落とせるけど、
1観測地点の全項目は1日ごとの模様

119デフォルトの名無しさん (ワッチョイ bfce-yvGd)2022/05/16(月) 09:05:21.75ID:gw7DnXAE0
>>118
データをコピペするだけならカーソル移動は必要ない
それと、1日ずつDLだと365回になるけど、項目ごとなら15項目、15回のDLで済むからずっと早く終わると思うんだけど

120デフォルトの名無しさん (ワッチョイ 1949-yvGd)2022/05/16(月) 10:02:47.99ID:a802uHDS0
ワイなら大まかに
「データをURLでフェッチする」機能
「データをシートに表現する」機能
とかに分けてそれぞれの中でループする

どんなデータ取るんかとか知らんけど
過去の気象データなら変化ないんやろから(少しずつしか追加されないし)
あらかたDLしちゃって毎日追加する運用でよくね
Accessで動くか知らんがワイなら楽だし(R)DBにして、
Excelは表現に特化させる
まあDBとして考えるなら119の言うように特定のデータをカラムとして取り込むほうがいいけどね

121デフォルトの名無しさん (ワッチョイ 7dda-o6RS)2022/05/16(月) 11:38:04.10ID:DOkjRxjB0
>>115
この人の書くコードは読みやすいよね

122デフォルトの名無しさん (ワントンキン MM9f-Lh2i)2022/05/16(月) 13:47:28.98ID:CQNp6U12M
>>119
>>118
> データをコピペするだけならカーソル移動は必要ない

そうなんだ・・・
あたしゃ、
単ページのDLとその後の整形は
PowerQuelyがやりやすかったので、
勢い、1日分ごと切って貼ってをVBAで・・・
って発想でやってた。
クエリー更新もVBAの中に入れて。

ネットの事例かき集めて
自己流で作ったのはこんな感じ。

' DBテーブルの最終行の次行を計算
k = Range("R_Row_DB_Title").Value
l = tbl3.ListRows.Count + k + 1

' 単位読取りテーブルのデータ行をコピーして、
' DBテーブル最終行の次行から貼り付ける
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

123デフォルトの名無しさん (スプッッ Sddb-lC0j)2022/05/16(月) 22:38:43.92ID:zF5DsILOd
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を入力
これを終わりまで自動入力したいのですが、どう書けばいいでしょうか。
いまいち説明がうまくできなくてすみません。

124デフォルトの名無しさん (ワッチョイ bf93-I8Wv)2022/05/17(火) 06:57:27.10ID:OSHWxoLA0
>>110
ありがとうございます
まさかこんな単純な解決法だったなんて
勉強になりました

125デフォルトの名無しさん (ワッチョイ 6768-mOD9)2022/05/17(火) 14:46:10.58ID:le3TeRDS0
>>123
こんな感じ?
Excel VBA 質問スレ Part76 YouTube動画>3本 ->画像>10枚

126デフォルトの名無しさん (ブーイモ MMe1-mtI6)2022/05/17(火) 19:15:44.32ID:ZA1GChKVM
>>123
>いまいち説明がうまくできなくてすみません。
問題を上手く説明できる事は、プログラミング能力の上達にとても大事な事。

127デフォルトの名無しさん (スプッッ Sddb-lC0j)2022/05/17(火) 22:53:48.79ID:bIs4gfyOd
>>125
ありがとうございます。
試してみてるのですが、画像G14が何をしてるか教えていただけないでしょうか・・

>>126
(・へ・)

128デフォルトの名無しさん (ワッチョイ 6768-mOD9)2022/05/17(火) 23:08:31.99ID:le3TeRDS0
>>127
>上に隣接するa群の一番上(1 a)の数字を参照
この部分

E,F列は切り替わった部分を取得している。row()にすることで、切り替わった部分を取得できる
maxで、切り替わった直近を取得
あとはindexmatchでA列を取得

129デフォルトの名無しさん (ワッチョイ 5510-cTT+)2022/05/18(水) 00:40:35.16ID:54FLML710
>>127
人様に迷惑掛けるだけの人?

130デフォルトの名無しさん (ワッチョイ 9b4f-aONe)2022/05/18(水) 23:00:11.54ID:08bF+6I50
質問です
EXCELのアプリケーションを別途立ち上げて
それをVBAを実行しているブック側から制御することは可能でしょうか?
可能だとすればどのようにすれば実現できますか?

131デフォルトの名無しさん (スフッ Sd2f-xGWD)2022/05/18(水) 23:31:31.92ID:yWpeDHxGd
Application.RUN

132デフォルトの名無しさん (ワッチョイ f101-5bcZ)2022/05/19(木) 06:39:30.30ID:3ImK9i5g0
VBAエキスパートの本見てみたけどこの範囲なら取得するのは楽勝だな

133デフォルトの名無しさん (ワッチョイ 7dda-o6RS)2022/05/19(木) 12:33:14.63ID:uClc3Hkf0
VBAの資格、人気度高いね。
ただ企業によっては何それ??的な見方されるのがちょっと。。

134デフォルトの名無しさん (ワッチョイ 6f3d-fy+1)2022/05/19(木) 15:57:56.76ID:ednyHaa30
VBAでWinアプリ制御するマクロの動画作ったんだが誰も見てくれないや。
そういう需要てないのか?

135デフォルトの名無しさん (ワッチョイ b310-ukg8)2022/05/19(木) 16:56:56.93ID:OfQgMZCZ0
>>134
API使ってバックグラウンドで制御してるなら見る

136デフォルトの名無しさん (ワッチョイ 6f3d-fy+1)2022/05/19(木) 17:15:23.09ID:ednyHaa30

137デフォルトの名無しさん (ラクッペペ MM17-xfi2)2022/05/19(木) 18:18:22.53ID:H0TVdlz+M
ゆっくり茶番劇® か

138デフォルトの名無しさん (ワッチョイ b310-ukg8)2022/05/19(木) 18:19:37.44ID:OfQgMZCZ0
>>136
面白そう、家帰ったら見よう

139デフォルトの名無しさん (ワッチョイ f101-5bcZ)2022/05/19(木) 21:37:06.79ID:3ImK9i5g0
RPA使わなくてもVBAでも結構出来るんだよね
キーボード、マウス操作出来るしなんなら読み上げも出来るし
アプリ立ち上げと組み合わせれば色々出来る

140デフォルトの名無しさん (ワッチョイ 6768-mOD9)2022/05/19(木) 22:26:16.70ID:JItdutDu0
RPAは自動化そのものだから、
VBAでRPAを実現してるだけだぞ

141デフォルトの名無しさん (ワッチョイ c38c-i+mZ)2022/05/19(木) 23:19:27.75ID:5QG/OJCT0
>>136
動画名にExcelって必ず入れとかないと
この手のネタを見たい人に検索で見つけてもらえない

あと時々Excelで予定表の作り方とか番外編としてド素人受けするネタをエサとしてupするとか

142デフォルトの名無しさん (ワッチョイ 7dda-o6RS)2022/05/19(木) 23:27:11.45ID:uClc3Hkf0
ゆっくりの顔はこれから無料で使用できなくなるんだよね?

143デフォルトの名無しさん (ワッチョイ bf93-I8Wv)2022/05/19(木) 23:45:08.95ID:EjpQ3dyV0
できる
動画名にゆっくり茶番劇って入れたらダメ

144デフォルトの名無しさん (ワッチョイ 6f3d-fy+1)2022/05/19(木) 23:51:09.33ID:ednyHaa30
>>141
トンクス。
オレのExcel2013だから今風のネタが作れないんだよね。
祝日込の予定表作ろうかと思ったら、自分のやつじゃpowerquery使えないことに気づいたわ。
だから誰もやってないネタとしてRPAもどきをやってみた。

145デフォルトの名無しさん (ワッチョイ 7dda-o6RS)2022/05/20(金) 12:02:22.42ID:QJ3dWDHN0
2013でパワークエリ使っていた同僚いたけど、どうやったのだろ??

146デフォルトの名無しさん (ワッチョイ 9b8e-lPuq)2022/05/20(金) 14:24:00.71ID:Sdn4LcDR0
>>145
使えるぞ
>>144が馬鹿なだけ

147デフォルトの名無しさん (ワッチョイ ebda-yvGd)2022/05/20(金) 15:47:49.30ID:J0VXxMmC0

148144 (ワッチョイ 6f3d-fy+1)2022/05/20(金) 16:37:29.66ID:zIX8lMtd0
アドインを入れなきゃ使えんなんて知らんわ。
まあ、やってみるよ。

149デフォルトの名無しさん (ワッチョイ 7dda-o6RS)2022/05/20(金) 18:17:06.14ID:QJ3dWDHN0
確かに。知っている人は少ないはず。2013にパワークエリアドイン。

150デフォルトの名無しさん (ワンミングク MMbf-y3zH)2022/05/20(金) 21:07:42.32ID:vMDI6+gYM
>>149
使いたくて見つけられないのは馬鹿だと思うよ?

151デフォルトの名無しさん (ワッチョイ 0f5f-as48)2022/05/20(金) 21:09:21.29ID:7ynD7rzD0
ニッチな動画すぎるわ
こういうのはたまに腕前を見せる程度でいいと思うぞ

152デフォルトの名無しさん (ワッチョイ 6768-mOD9)2022/05/20(金) 21:34:55.10ID:Dykg0reN0
エクセル動画って意外と伸びないんだよ
再生数あげてる動画も、数年かけてやっとこさ5桁とかそんなん

153デフォルトの名無しさん (ワッチョイ ebe6-xfi2)2022/05/20(金) 22:12:27.54ID:jYa2tCV10
文字には勝てんよwww

154デフォルトの名無しさん (ワッチョイ abda-ZFfB)2022/05/21(土) 00:43:35.28ID:tFOC1nFU0
YouTubeでしょ?
Excel動画の一部で100万回とか200万回再生動画あるけど、あれは例外かな?
配信者が人気度高いとか?

155デフォルトの名無しさん (ワッチョイ 1abd-3AdB)2022/05/21(土) 01:12:54.43ID:FuQQRFwo0
ぶっちゃけいちいち動画にするのやめてくれとしか思わんな
テキストに書いてくれと

156デフォルトの名無しさん (ワッチョイ 1a42-QU/V)2022/05/21(土) 07:53:33.56ID:QJ4+3poJ0
それは見なきゃいいだけじゃね

157デフォルトの名無しさん (ワッチョイ 9768-A7oz)2022/05/21(土) 08:06:57.86ID:UbenPHXM0
>>156

158デフォルトの名無しさん (スフッ Sdba-eugl)2022/05/21(土) 08:54:23.72ID:ZErRlfK3d
たいがいのことは検索すればブログと動画と両方出てくる
好きな方を見ろとしか

159デフォルトの名無しさん (ワッチョイ 8a3d-Td31)2022/05/21(土) 09:03:39.72ID:9Ja/LFqb0
>>153
文字だとさ、その分の数行を細切れに書くやつがいてさ、
その分だけ見せられても困る事が多い。
解説書気取りなんだろうけど。
VBAならいいけど、pythonとかだと全体が見れないとな。

160デフォルトの名無しさん (ラクッペペ MMb6-Hmo6)2022/05/21(土) 12:06:30.15ID:zgbylN/DM
>>159
ドーガってソース全体見せながら饅頭が喋るの?

161デフォルトの名無しさん (スッップ Sdba-SkIO)2022/05/21(土) 13:24:13.30ID:yO41HbkGd
64bitだとdatepickerが使えないんだけど代替有りますか?

162デフォルトの名無しさん (ワッチョイ 9768-A7oz)2022/05/21(土) 22:05:53.36ID:UbenPHXM0
>>161
無いんだな、これが
あと64bitじゃなくて2013か2016あたりから使えないはず

163デフォルトの名無しさん (スププ Sdba-SeQ4)2022/05/22(日) 00:44:38.46ID:VeiX84dqd
クリップボードに

あああ いいい
123  たたたた   ららら 12ああ

000 1
かかか 


あかさ たなは 358 22558

のようにランダムな文字列や数字がはいっています。
空白や改行の数もランダムですがどちらも5個いないです。

あああ、や、いいい、の間は空白や改行のどちらかです。
文字列または数字を、空白か改行で区切って

横に10列ずつに並べたいです。
A1に「かかか」B1に「いいい」おなじように繰り返してJ1に「あかさ」、次はA2に「たなは」が入るようなイメージです。


うまく伝わっているかわかりませんが、どのようなコードを書いたらいいですか?

164デフォルトの名無しさん (スップ Sdba-LYQt)2022/05/22(日) 02:13:20.90ID:EshCCJ/od
>>163
まずはちゃんと伝えるように書け

165デフォルトの名無しさん (ブーイモ MM7f-qwkU)2022/05/22(日) 02:46:34.46ID:EqID4SVmM
>>163
よくわからん部分もあるが
クリップボードからテキストフォーマットのデータをstrに読み込んで改行ごとに分割(spritかね)
分割した文字列を更にスペースごとに分割して2次元配列にいれる
あとはそれをセルに転写すればいいんじゃないの?
分けるのが改行と空白両方ならどっちかにリプレースしてからスプリット

166デフォルトの名無しさん (アウアウウー Sac7-xdJx)2022/05/22(日) 06:43:53.78ID:e+a5DD9Ja
>>163
とりあえずその状態で欲しい結果を書け

167デフォルトの名無しさん (ワッチョイ 9768-A7oz)2022/05/22(日) 06:45:54.76ID:g+ilDpCn0
>>163
連続する改行と空白を消す。
for i = 1 to 5
a = Replace(a, vbCrLf & vbCrLf, "")
a = Replace(a, " " & ” ” , "")
next

改行を空白に置換する

splitで分ける

配列をセルに入れる

168デフォルトの名無しさん (ワッチョイ 9768-A7oz)2022/05/22(日) 06:46:20.24ID:g+ilDpCn0
>>166
A1に「かかか」B1に「いいい」おなじように繰り返してJ1に「あかさ」、次はA2に「たなは」が入るようなイメージで

169デフォルトの名無しさん (ワッチョイ b717-dx0l)2022/05/22(日) 08:05:25.80ID:kuwcJLnp0
どういう順番にしたらA1にかかかが来るのかがよく分からない

170デフォルトの名無しさん (ワッチョイ 9768-A7oz)2022/05/22(日) 08:09:48.09ID:g+ilDpCn0
A1に「かかか」

A1に「あああ」

間違えてるだけだろ、それぐらい見抜こう

171デフォルトの名無しさん (ワッチョイ b717-dx0l)2022/05/22(日) 08:43:32.82ID:kuwcJLnp0
書かれてる仕様を思い込みで勝手に書き換えたらいかんでしょ
作り込む前に確認を取らなきゃダメだよ

172デフォルトの名無しさん (アウアウウー Sac7-xdJx)2022/05/22(日) 09:43:55.92ID:aVdyttIba
>>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

173デフォルトの名無しさん (ブーイモ MMe7-qwkU)2022/05/22(日) 10:01:24.95ID:q4bvZkadM
>>172
あらキレイ

174デフォルトの名無しさん (ワッチョイ 9a02-5LfH)2022/05/22(日) 10:11:15.36ID:RbyXtd/h0
>>173
綺麗に見えるだろ?
このコード、死んでるんだぜ…ヘヘッ

175デフォルトの名無しさん (ワッチョイ 2702-eugl)2022/05/22(日) 10:37:59.11ID:TDPiVbwY0
>>163
VBAスレでいうのもアレだと思うけど

「改行、スペースで区切られたテキストデータを、10個ずつ(10列ずつ)で改行されるデータとして抽出したい」
って考えると正規表現可能なテキストエディタでやったほうが良いような気がする。

( | |\r\n) を \t
\t+ を \t
((.*?\t){2}) を $1\r\n

にみたいな感じで

176デフォルトの名無しさん (ワッチョイ bb5f-/2Hp)2022/05/22(日) 13:05:55.15ID:QBTEeDJr0
>>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に「かかか」』の謎
・この整形処理前後の処理(処理全体、本当の処理目的)
などにもよるけど。

177デフォルトの名無しさん (スップ Sdba-vBG4)2022/05/22(日) 19:14:42.01ID:Np0e+b7dd
常にそうだとは言わないけど、VBAでいろんなことしようとする人って
会社内でセキュリティに縛られてVBAしか使えないような環境でこっそりやってる場合が多いんじゃね

うちなんてpowershellさえ使えない

178デフォルトの名無しさん (ワッチョイ 8a3d-Td31)2022/05/22(日) 21:09:09.39ID:2g8+RnwC0
>>177
VBAとVBScript/Jscriptはそれの定番だよ。
IEがなくなるとスクレイピングができなくなるよな。
そういう環境下だと、どうするんだろう。

179デフォルトの名無しさん (スフッ Sdba-SeQ4)2022/05/22(日) 21:19:32.54ID:uG5Z2bGad
163です。
レスくださった方ありがとうございました。

結論から言うと、>>172を加工してなんとなくうまくできました。
A1セルは「あああ」が正しいです。すみません。

180デフォルトの名無しさん (ワッチョイ 9768-A7oz)2022/05/22(日) 21:33:47.57ID:g+ilDpCn0
それぐらい分かってるから大丈夫だ

181デフォルトの名無しさん (アウアウクー MMfb-RA6z)2022/05/23(月) 17:38:33.02ID:KrqlZBhkM
表示するのにラグを発生させたい場合sleepかウェイトを試して見たのですがソースの途中に入れても実行最初に止まって全部表示されてしまうのですがなにかいい方法はないのでしょうか

182デフォルトの名無しさん (ワッチョイ 93ac-OVn5)2022/05/23(月) 17:51:32.07ID:KArKRscP0
何の表示だよ

183デフォルトの名無しさん (アウアウクー MMfb-RA6z)2022/05/23(月) 17:58:05.38ID:KrqlZBhkM
セルに挿入です
for文を挟んでいるとどうもすべて止まって一括表示されてしまいます

184デフォルトの名無しさん (エアペラ SDbf-Rbs1)2022/05/23(月) 18:38:04.00ID:nw7KfNpjD
ループ内で都度再表示させればいいんじゃねーの

185デフォルトの名無しさん (ワッチョイ da59-Z+Po)2022/05/23(月) 18:45:16.94ID:S7FOVsdv0
excelのシートのA列に◎オプションボタンActiveXを付けた、B列には商品名(3000件くらいある)を入れた。
◎ りんご
◎ みかん
◎ ぶどう
◎ ばなな

ぶどうを選んだら、TRUEになった番号は「3番」って返ってきているのですが、3000件を設定するのが大変で一括で設定できる方法があれば何かヒントを教えてください。

186デフォルトの名無しさん (ワッチョイ 9768-A7oz)2022/05/23(月) 20:02:47.45ID:BtAHO3WV0
>>181
なんのためのラグかを書けばもう少しマシなやり方を教えてくれるかも

187デフォルトの名無しさん (ワッチョイ 7fce-eugl)2022/05/23(月) 20:48:26.86ID:e/WRg45j0
>>183
DoEvents

188デフォルトの名無しさん (ワッチョイ 9768-A7oz)2022/05/23(月) 20:58:57.01ID:BtAHO3WV0
Sub foo()
Range("a1:z100").Formula = "=rand()"
End Sub
こういうのを徐々に表示したいってなら、無理だ

189デフォルトの名無しさん (ワッチョイ 8b01-dx0l)2022/05/23(月) 21:43:20.23ID:2/Utrmz50
Do Eventsってイマイチちゃんと意味を理解しない状態で使ってる気がする

なんか図形でアニメみたいな動きさせるとか
入れると安定したり

190デフォルトの名無しさん (ワッチョイ 7fce-eugl)2022/05/23(月) 23:30:03.20ID:e/WRg45j0
>>189
WindowsというOSの(ほぼ)すべてがイベントで動いてる
キー入力も画面表示もディスクアクセスも、何をするにもイベントが必ず使われる

普通に使ってるだけで、ユーザーの関知してないところで毎秒数十万回以上のイベントが発生してて、その一部は溜めたり無視することもできる
そこで溜まったイベントをまとめて処理するのがDoEvents

191デフォルトの名無しさん (ワッチョイ 9a02-5LfH)2022/05/23(月) 23:44:03.30ID:lhQpV8J50
肥溜めの水で流すボタンだな

192デフォルトの名無しさん (スップ Sdba-LYQt)2022/05/23(月) 23:54:22.46ID:hvqO78Q3d
>>190
中途半端な知識の人の回答だな
所詮はExcel使いか

193デフォルトの名無しさん (ワッチョイ abda-ZFfB)2022/05/24(火) 00:04:30.71ID:voOeNnQV0
そうか?

194デフォルトの名無しさん (ワッチョイ da59-Z+Po)2022/05/24(火) 01:52:28.78ID:KUFh4POM0
ググって読んでもさっぱりわからんがプロシージャの共通化(´・ω・`)これかも。

195デフォルトの名無しさん (ワントンキン MM8a-oOyK)2022/05/24(火) 02:50:59.45ID:iiO+sB1VM
>>190
ExcelのVBAがWindowsの全てのイベントを処理しているとでも思ってんの?
いつの時代のWindowsだよ

196デフォルトの名無しさん (ワッチョイ 372f-tVBN)2022/05/24(火) 06:09:04.44ID:VAh5gH+20
>>195
話せ。

197デフォルトの名無しさん (ワッチョイ 0eda-yjPv)2022/05/24(火) 06:13:25.21ID:3Lu4tPby0
タスク

198デフォルトの名無しさん (ワッチョイ abda-ZFfB)2022/05/24(火) 13:00:25.03ID:voOeNnQV0
60歳70歳の古参プログラマーじゃないんだからさ

199デフォルトの名無しさん (ワッチョイ 63da-u/kF)2022/05/24(火) 21:38:10.53ID:ylp1zOdx0
Loop中など他からの割り込みの余地入れる=DoEventsかと思ってました
厳密な意味は知らずに使ってました

200デフォルトの名無しさん (スッップ Sdba-WhUL)2022/05/24(火) 22:07:09.92ID:kwRZndg1d
昔はWindowsのイベントループそのものだったけど、今は>>199くらいの認識の方が正しいよ
今のExcelは裏でスレッド使いまくってるから複雑

201デフォルトの名無しさん (ワッチョイ 8b01-dx0l)2022/05/24(火) 22:24:18.97ID:L7ubAEHL0
少しまだ難しいですが、とりあえずはwindowsの処理で無視していた分を一旦返してあげるみたいな処理なのだと認識しました。

202デフォルトの名無しさん (ワッチョイ 9768-A7oz)2022/05/24(火) 22:30:40.02ID:1UrgJSe10
昔はシングルコアで激重だったから適度に返さないとすぐに応答なしになった
今はマルチタスクで割と重い処理も平気

203デフォルトの名無しさん (ワッチョイ 33b1-4kT2)2022/05/25(水) 05:02:47.05ID:1b7KkSYk0
個人用マクロブックのプロシージャからシートに挿入されているマクロのボタンを押す方法を教えて下さい

204デフォルトの名無しさん (ワッチョイ 33da-PZpu)2022/05/25(水) 06:07:16.42ID:BON/kfv30
privateを削除するんじゃなくて?
物理的にクリック?

205デフォルトの名無しさん (ワッチョイ 33b1-4kT2)2022/05/25(水) 06:43:21.13ID:1b7KkSYk0
物理的にではなくシート側のボタンのクリックイベントのプロシージャを個人用マクロブックのプロシージャから動かしたいです。

206デフォルトの名無しさん (ワッチョイ 33b1-4kT2)2022/05/25(水) 06:45:16.14ID:1b7KkSYk0
application.runは駄目でした

207デフォルトの名無しさん (ワッチョイ 0eda-yjPv)2022/05/25(水) 06:47:11.61ID:Vyx13HCI0
イベントとか言うから初心者が勘違いする

208デフォルトの名無しさん (オッペケ Srbb-OVn5)2022/05/25(水) 07:53:58.12ID:SJVW4y9pr
プロシージャの中身を外出ししようとか考えたのか?

209デフォルトの名無しさん (ワッチョイ 7fce-eugl)2022/05/25(水) 08:31:27.12ID:2Cw1QSym0
>>203
Call

210デフォルトの名無しさん (スフッ Sdba-ry9z)2022/05/25(水) 09:47:51.39ID:rgUSKbgWd
いやここはレイズだ

211デフォルトの名無しさん (ワッチョイ 97a5-dx0l)2022/05/25(水) 18:45:23.11ID:cRKMftFU0
>>206
呼び出し先のブック名は入れてるのかもしれないけどモジュールが複数あってモジュール名は入れてない、とか?

212デフォルトの名無しさん (ワッチョイ 3336-4kT2)2022/05/25(水) 19:54:25.66ID:ZQqE1PHN0
説明が少なくて申し訳ありません。
マクロボタンのついた会社の帳票のマクロボタンを押して処理をした上に自分の個人用マクロブックの処理がしたいです。私は会社の帳票のマクロを変更する技術も権限もないのでこのような形を取っています

213デフォルトの名無しさん (アウアウウー Sac7-yjPv)2022/05/25(水) 20:09:39.86ID:ySKajOtFa
やっちゃいけないことじゃねーの

214デフォルトの名無しさん (スフッ Sdba-ry9z)2022/05/25(水) 20:44:02.25ID:rgUSKbgWd
会社のマクロにパスワードが掛かってる、かつ起点となるマクロはその会社の方のマクロって事かな?

1. 会社のExcelと個人で用意したxlsm(個人用ブックである必要無し)を準備する
2. vbs やps1の外部ファイルから会社のVBA実行→個人で用意したxlsm内のVBA実行

これで行けるんでねえの?

215デフォルトの名無しさん (ワッチョイ b717-dx0l)2022/05/25(水) 20:52:50.14ID:D9uW2fk+0
変更する技術がないなら触らない方が良いと思うよ

216デフォルトの名無しさん (ワッチョイ 1a42-QU/V)2022/05/25(水) 21:08:25.40ID:UbZSbjiw0
そもそも権限のないものを突破しようってのは倫理的にどうなのって気がするが
まずは上司なりなんなりに相談するところからじゃね

217デフォルトの名無しさん (オイコラミネオ MMe3-kv1D)2022/05/25(水) 21:14:00.59ID:oImj9UUVM
ややこことは辞めたほうがいいね

218デフォルトの名無しさん (ワッチョイ 8b01-dx0l)2022/05/25(水) 22:29:41.62ID:BtdSsAyL0
パスワードかかってるマクロなんて適当な野良アプリでわかるけどな

219デフォルトの名無しさん (ワッチョイ 93ac-OVn5)2022/05/26(木) 00:34:12.72ID:O+gRo7JH0
会社用のマクロ実行したあと、個人用マクロを実行するだけの作業なのに
あくまでも自分の分からない領域まで手を入れたいってのは分からんな
マクロ壊して分かりづらい変なトラブルになったら責任云々とかになりかねないかもしれんぞ

214のやり方がむりなら諦めるか上長に相談するべきやと思うで

220デフォルトの名無しさん (ワッチョイ 3336-4kT2)2022/05/26(木) 06:53:49.33ID:FGzk4ul90
>>219
100個ぐらいあるエクセルファイルを開いて、そのエクセルファイルのマクロボタンを押して一回目の処理をして次に個人用マクロブックに作った処理をしてエクセルファイルを上書き保存して閉じるを繰り返さなくてはいけないのでマクロ化したいのです。エクセルファイル側のプロシージャを個人用マクロブック側に持たせるのが一番簡単かなと

221デフォルトの名無しさん (ワッチョイ 9a4f-9R20)2022/05/26(木) 06:58:26.73ID:5W+gZAxj0
その会社の帳票マクロとやらのファイルを開いてボタン押せるんならSendKeys使えば何とかなるんじゃねーの?(鼻ホジ)

222デフォルトの名無しさん (オッペケ Srbb-OVn5)2022/05/26(木) 07:56:10.65ID:JEeygHRrr
>>220
工夫するのは上長に100個もある無駄なExcelファイルについて改善を提案すべきじゃね
下手なやつの自動化は害にしかならない
それでだめなら自分の責任でこういうやり方していいかとか聞くとかそういう流れにはもうしたんやろ?

外部から呼ぶ214のやり方で無理なら諦めろ
改善して見込める君の給与メリットがそれほどの額じゃないんやろ

これ公務員とかならマジで税金の無駄やなw

223デフォルトの名無しさん (ワッチョイ 7fce-eugl)2022/05/26(木) 08:40:43.23ID:MTu1kK/A0
公務員なんて文系の仕事だから、効率のいいデータ整理やプログラミングができるやつなんてほぼいない
しかし理系の人材に役所仕事させるのは税金の浪費以上にもったいない

224デフォルトの名無しさん (ワッチョイ 8a3d-Td31)2022/05/26(木) 14:50:09.50ID:6r93DwI70
>>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"

225デフォルトの名無しさん (アウアウウー Sac7-yjPv)2022/05/26(木) 15:48:41.66ID:5fQbWZ9ra
上司に黙ってデータ改竄とかしたら
会社の資産を横領できちまうな

226デフォルトの名無しさん (ワッチョイ 8b01-8jyA)2022/05/26(木) 18:34:16.06ID:MJ/jCOeZ0
農協で30年勤めたOLがやりそうなイメージ。

227デフォルトの名無しさん (ワッチョイ 8b01-8jyA)2022/05/26(木) 18:36:23.42ID:MJ/jCOeZ0
郵便局の場合、昭和のころから歴代の局長が引き継いでそう。
漁協の場合、いくつもの窃盗グループがありそう。
悪いこととは知らなかったって言いそう。

228デフォルトの名無しさん (HK 0Hca-ib4B)2022/05/26(木) 22:05:05.56ID:KppvSZ/JH
今日いちにち会社で配列に関する記事を読んでましたがここ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

229デフォルトの名無しさん (HK 0Hca-ib4B)2022/05/26(木) 22:19:00.22ID:KppvSZ/JH
一応こんな感じのデータです

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

230デフォルトの名無しさん (HK 0Hca-ib4B)2022/05/26(木) 22:19:48.67ID:KppvSZ/JH
やっぱりずれた。。。(>_<)

231デフォルトの名無しさん (ワッチョイ cebb-A4LC)2022/05/26(木) 22:28:17.29ID:dA4WjGxV0
>>228
Excelの行を1行1行Deleteするのはどうやっても重くなるから出力用の配列を作るのがいいかな

232デフォルトの名無しさん (スフッ Sdba-ry9z)2022/05/26(木) 22:30:55.09ID:6l5xx5Q8d
配列を使ってんなら配列の中で削除処理しないとそりゃあ意味無いでしょ

233デフォルトの名無しさん (HK 0Hca-ib4B)2022/05/26(木) 22:46:06.64ID:KppvSZ/JH
>>231
>>232

ごもっとです、、(;^_^A
今日は疲れたので明日ちょっと調べて試行錯誤してみます。レスいただきありがとうございました。

234デフォルトの名無しさん (ワッチョイ 768c-aDUG)2022/05/26(木) 23:00:25.66ID:Wrt5fLCv0
いつもやる方法があるけどどのくらい早いのかはよくわからん

235デフォルトの名無しさん (スフッ Sdba-ry9z)2022/05/26(木) 23:01:04.69ID:6l5xx5Q8d
ユニークなキー列がもしあればディクショナリー使うのが速いよ
まあ難しければ配列でも全然良いけど

236デフォルトの名無しさん (HK 0Hca-ib4B)2022/05/26(木) 23:26:48.34ID:KppvSZ/JH
>>234
少なくとも私のコードよりは速いんじゃないかな。。
15万行を10分以上かかってます(;^_^A

>>235
ディクショナリーとは初めて聞きました。でもユニークなキーがありませんでした。。
SKU Codeという商品コードは基本ユニークなんですが3行ずつ同じ商品コードが並んでるんです。。(;^_^A

237デフォルトの名無しさん (ワッチョイ 768c-aDUG)2022/05/26(木) 23:42:29.81ID:Wrt5fLCv0
>>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

238デフォルトの名無しさん (ワッチョイ bb5f-eugl)2022/05/26(木) 23:50:53.02ID:HeWhwrio0
>>228
・最初にセルの内容をvariantの2次元配列に格納。

・そのvariantを弄くり倒す。

・ほしい結果になったvariantを最後に書き戻す。

セルはフォントだの背景色だの罫線だの表上のアドレスだのとにかくいろんな情報がてんこ盛りなので、valueみてりゃいい処理ならできるだけ書き換えない。

239デフォルトの名無しさん (ワッチョイ bb5f-eugl)2022/05/27(金) 00:18:49.05ID:JbgC4v+W0
あと、蛇足なんだけどソースでやってることそのものをコメントで書いてもあまり意味が…。

'配列をループ
For i = UBound(A, 1) To 2 Step -1

とか

'「If」で検索
If A(i, 6) = "Distribution (PCW; Sales value)" Then

は、いらないのではと。


もひとつ、削除系処理は下からループさせたほうが無難な気がしないでもない。

240デフォルトの名無しさん (ワッチョイ bb5f-eugl)2022/05/27(金) 00:19:25.67ID:JbgC4v+W0
あ。ループは俺の読み間違いだ。ごめんなさない。

241デフォルトの名無しさん (ワッチョイ cebb-A4LC)2022/05/27(金) 00:22:08.18ID:5SJXPRgg0
>>235
Dictionary使うならユニークなキーがなくても行番号をキーに突っ込めば大体応用効くよね
アイテムはArrayで格納すればいいし

242デフォルトの名無しさん (ワッチョイ cebb-A4LC)2022/05/27(金) 00:30:45.85ID:5SJXPRgg0
ちなみに行削除は、DeleteTargetRowみたいなRange型の変数を使って、削除対象の行が出たらその変数にUnionしていってまとめて削除、がまだ速いかな

243デフォルトの名無しさん (ワッチョイ 768c-aDUG)2022/05/27(金) 01:16:57.81ID:+979Xq8C0
>>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

244デフォルトの名無しさん (ワッチョイ 768c-aDUG)2022/05/27(金) 02:06:50.25ID:+979Xq8C0
myRange.Offset(1, 0).Resize(myRange.Rows.Count - 1).SpecialCells(xlCellTypeVisible).Copy tempSheet.Range("A1")
を下に修正
myRange.SpecialCells(xlCellTypeVisible).Copy tempSheet.Range("A1")

245デフォルトの名無しさん (スフッ Sdba-ry9z)2022/05/27(金) 06:53:03.71ID:0WSlRFUXd
>>241
お何か良いアイデアかも
横からだけど使わせて貰おう

246デフォルトの名無しさん (ワッチョイ c3a5-ib4B)2022/05/27(金) 06:53:21.55ID:XEPyrX550
>>237
おそら>>243さんもそうかな?

あの後寝てしまい申し訳ありません。
8時くらいになるかと思いますが動かしてみますのでお待ちくださいm(__)m
夜遅くまでどうもありがとうございます!(´;ω;`)

>>238
スミマセン、・そのvariantを弄くり倒す。
からもうよくわからないレベルです。。でもありがとうございます。

>>239
基本はネットで拾ったコードを貼っているので、、
でも自分の参考にはなってます笑。
ありがとうございます。

>>241-242
ちょっと時間あるときに勉強してみますね(;^_^A

247デフォルトの名無しさん (ワッチョイ c3a5-ib4B)2022/05/27(金) 07:26:42.06ID:XEPyrX550
>>243
えっ!!何が起こったの?
こっちも5秒で終わりましたっっ!!!えええぇ信じられないスゴイスゴイ!!!(笑)

ちょっと後でゆっくりF8で動かしてみようと思います!!!
本当に助かりました!ありがとうございました!!!
(´;ω;`)

248デフォルトの名無しさん (ワッチョイ c3a5-ib4B)2022/05/27(金) 07:28:44.47ID:XEPyrX550
>>244
見落としてましたスミマセン。修正してなくてもめちゃくちゃ速く動きましたが
こちらも動かしてみますね。ありがとうございました!m(__)m

249デフォルトの名無しさん (ワッチョイ c3a5-ib4B)2022/05/27(金) 08:09:16.73ID:XEPyrX550
>>244のは見出しが消えるのを修正したコードでしたね(;^_^A

あと、会社のPCで動かしてみたら2秒もかかりませんでした。
素晴らしいコード、本当にありがとうございましたm(__)m 配列の勉強したいと思います。

250デフォルトの名無しさん (スフッ Sdba-ry9z)2022/05/27(金) 08:25:54.12ID:0WSlRFUXd
質問者の要望事項がクリアだったしサンプルコードや表のイメージを出してくれたから回答がしやすかったと思います
殆どの質問者はそんな事までしないクレクレちゃんだから

251デフォルトの名無しさん (ワッチョイ c3a5-ib4B)2022/05/27(金) 08:34:33.43ID:XEPyrX550
>>250
昔のテンプレに沿った質問の仕方してなかったのでダメ元でしたが
最低限やるべきことはクリアしてたみたいで良かったです。
(*^-^*)

252デフォルトの名無しさん (ワッチョイ df49-OVn5)2022/05/27(金) 10:41:33.58ID:X2EnXYhx0
>>250
これはほんとにそう
ふわっと伝えるだけできちんと勝手に書いてくれると思ってるやつの多いこと

253デフォルトの名無しさん (ワッチョイ 97f6-8jyA)2022/05/27(金) 11:15:34.63ID:S0cy91Tb0
エクセルで10万行以上とか設計が間違ってる

254デフォルトの名無しさん (ワッチョイ 37da-eugl)2022/05/27(金) 12:57:26.47ID:fJfHid2B0
定常業務としてはExcelではやらなくなるにしても、
10万行相手に、最初の試行錯誤をExcelでやってみる
というのはよくある話かと。

設計云々はそれが分かってから。

255デフォルトの名無しさん (ワッチョイ df49-OVn5)2022/05/27(金) 13:09:45.71ID:X2EnXYhx0
ワイの感覚では数百行とかでもExcel脱却したいし、
こんなんSQLと適当なスクリプトですぐ済むやろ
Excelになってるから重くなったりしちゃうだけで
Accessはしらん

みんなExcel万能思想すぎるんだよなあ

256デフォルトの名無しさん (ワッチョイ a37c-Rbs1)2022/05/27(金) 13:45:31.62ID:x8n9vcRZ0
職場で与えられた環境でどうにかしようとすると、
結果的にVBAやバッチファイル、PSスクリプトになる気がする

257デフォルトの名無しさん (ワントンキン MM8a-+hKh)2022/05/27(金) 14:07:07.28ID:s+hQ4v9CM
SQL書けるんだったら
そもそも質問主はこのスレに来とらんことに気付かない、
ただのマウンテンゴリラはウセヤガレ

258デフォルトの名無しさん (ブーイモ MMb6-WhUL)2022/05/27(金) 14:16:48.65ID:pbjQK1XdM
VBAもできないからこのスレにいるわけで、間違った道に進む前に正してあげるのは良い

259デフォルトの名無しさん (ワッチョイ 33b1-4kT2)2022/05/27(金) 20:25:14.34ID:e5D1B4Eg0
個人用マクロブックからエクセルのシートのマクロを動かす方法がわかりました。ファィル名をtest.xlsm、シートのボタンに登録してあるマクロをsub test()~end subとして
Application.Run"'test.xlsm'!Sheet1.test"
これで動きました。Run以下をダブルクォーテーション、ファイル名をシングルクォーテーションで囲むのがポイントです。

260デフォルトの名無しさん (ワッチョイ abda-CQbZ)2022/05/28(土) 02:17:11.31ID:wx0k8mom0
そもそも個人用ってオマ環

261デフォルトの名無しさん (ワッチョイ abda-yO3c)2022/05/28(土) 03:26:15.21ID:wx0k8mom0
権限のない新入社員が勝手にマクロ作って社内のデータ壊したらどうなるかわかっているのかな?
そのデータほんとに削除していいのですか?
条件ミスって消してはいけないデータ削除してしまったら・・・
やろうと思えばできるけど俺は怖くて自前のマクロなんか動かしたいとは思わんのだがな

262デフォルトの名無しさん (ワッチョイ 937c-KtHc)2022/05/28(土) 03:40:33.21ID:Yook3X5e0
>>261
データいじる前にバックアップしないのか?

263デフォルトの名無しさん (ワッチョイ a1b1-N3kL)2022/05/28(土) 05:54:52.90ID:2n2fc/gL0
>>261
間違えてデータを削除するプログラムを書いてしまうなんて普通ありえるのだろうか?AIが暴走するといかんからパソコンやスマホを使うのもやめたほうがいいレベルの発言だな

264デフォルトの名無しさん (アウアウウー Sac5-AEoY)2022/05/28(土) 06:07:09.43ID:PBRR2XJta
>>261
なんでこんなスレ見てるんだ?

265デフォルトの名無しさん (オッペケ Sr8d-A9Gv)2022/05/28(土) 08:04:53.73ID:oqZ/P1Bcr
これをループで100個くらいのブックに処理するらしいから漏れのほうが怖いね、ワイ的には
「自動化したから漏れたんだ」とか言われたら今後やりづらくなる

266デフォルトの名無しさん (ワッチョイ c17c-BpIg)2022/05/28(土) 09:48:04.57ID:PJ5ZLRH80
他の.xlsxのファイルの中身を、新たにExcelの画面を開かずに、
配列などに読み込む方法はありますか?
読み込みたいファイルのレコード数は毎回違うのですが、
可能なのでしょうか

267デフォルトの名無しさん (スフッ Sdb3-ibZ+)2022/05/28(土) 09:52:31.71ID:SCHew0ynd
マクロ4.0
もしくはアドレス直指定

visible=False だと実際は開いてても見えないように出来たんだっけか?

268デフォルトの名無しさん (ワッチョイ b33d-jM8o)2022/05/28(土) 11:35:21.85ID:4vP5xCiD0
aに16進数のABを代入するときは
a=&HAB
だけど、
aに2進数の100を代入するときはどう書く?
a=&B100
だとエラーになるんだが・・・・

269デフォルトの名無しさん (ワッチョイ 2b2c-2OYr)2022/05/28(土) 11:39:37.94ID:81XaDMLN0
>>263
cd /
rm -Rf *

270デフォルトの名無しさん (ワッチョイ 4949-A9Gv)2022/05/28(土) 12:20:10.23ID:XKEF46cS0
そも2進数なんてvbaにあったっけ

271デフォルトの名無しさん (ワッチョイ 0949-YXv9)2022/05/28(土) 13:12:36.54ID:bNMWJIq90
2進数を表すリテラルはないので、16進数や8進数で代用。
変換できればいいのならワークシート関数にある。

272デフォルトの名無しさん (ワッチョイ 937c-KtHc)2022/05/28(土) 13:19:54.56ID:Yook3X5e0
>>268
専用の命令はないことも関数のサンプルもググったらすぐ見つかったが他人を辞書代わりにするつもりとかか?

273デフォルトの名無しさん (ワッチョイ 934f-XmKI)2022/05/28(土) 14:33:33.04ID:K6Jk35Ar0
旧BASICやアセンブラ扱ってた奴なら
少なくとも1バイト、多ければ2バイトまで表現出来る
2の倍数を覚えてるから無問題

274デフォルトの名無しさん (ワッチョイ abda-CQbZ)2022/05/28(土) 15:36:05.64ID:wx0k8mom0
>>263
初心者が作ったマクロなめんなw

275デフォルトの名無しさん (ワッチョイ 99da-yO3c)2022/05/28(土) 16:00:35.49ID:gUD13Ggk0
マーカー付折れ線グラフで、マーカーの色と透明度を変えるマクロがなんかうまく行かなくて、
折れ線の線種や色、透明度は素直に変更出来ても、
マーカーの色がデフォルトに戻ったり、透明度を変更出来なかった。

マクロの記録を取ると何やら不可解なコードになり、
再実行すると余計なコード?でエラーになったり。

日本語サイトではなかなか解決策を見つけられず、
英語サイトを漁ってみたら、だいぶ昔に整理がなされていた。

なんと、なぜか唐突に「前景色」と「背景色」をセットで指定してから
透明度を指定すると上手くいくんだと。
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の歴史の中で、これは後付けだったのかしら?

276デフォルトの名無しさん (ワッチョイ 49da-pgQP)2022/05/28(土) 16:15:07.22ID:2QSEcnRR0
>>274
お前がその新入社員とやらに苦しめられた経験があるのは分かったから、このスレから消えろ。

277デフォルトの名無しさん (ワッチョイ a1b1-N3kL)2022/05/28(土) 17:51:43.48ID:2n2fc/gL0
>>274
初心者が作ったマクロで危険度が高いやつの具体例をあげてみて。今日中に書き込みがなければ、その程度とみなすから

278デフォルトの名無しさん (ワッチョイ d901-2OYr)2022/05/28(土) 19:18:12.47ID:6Sv+ENTH0
タコペッティのユーチューブチャンネルより

・週2日出社、週2日在宅の週4日勤務が最高の働き方だと提唱したい
・週休3日制になったら給料を減らされる??そんな考えだからいつまで経っても貧乏なんだよ...
・【朗報】「在宅勤務OK」の求人、コロナ前と比べて7 7倍に上昇!
・【驚愕】リモートワーク求人が13倍に増加w
リモートワークができる人とできない人とでますます格差は広がる...
・【悲報】「会社員に戻りたい!」というフリーランス、全体の3%しかいないw
・【悲報】副業が解禁されても、副業を見つけられずに困窮する会社員が続出...
  日頃から副業をやっておくことの重要性を再認識しよう
・【驚愕】5人に1人は本業よりも副業収入の方が多いことが判明w 
本業よりも稼げる副業とはなんなのか??

279デフォルトの名無しさん (ワッチョイ 518e-95+F)2022/05/28(土) 20:21:06.97ID:/6Rfh39q0
>>277
幼稚な馬鹿がよく使うマウント取ったと自分で思い込むために使う言葉

何時何分何秒?
今日中に

280デフォルトの名無しさん (ワッチョイ 937c-KtHc)2022/05/28(土) 20:58:43.99ID:Yook3X5e0
>>277
あるとしたらもともと設定してある参照先やリンクや関数とかを知らずに上書きしたうえで保存するとかかね
このセルはいじらないでくださいって手作り感のあるコメントとか見たことない?

281デフォルトの名無しさん (ワッチョイ a1b1-N3kL)2022/05/28(土) 21:54:10.82ID:2n2fc/gL0
初心者の作ったマクロに悩まされたエピソードがいくらでも出てくるかと思いきや単なる作り話かい?なめてたのはお前の方だったな

282デフォルトの名無しさん (ブーイモ MMab-rAsz)2022/05/28(土) 22:12:40.91ID:IaZrO6TYM
操作を間違うと処理が狂ってUsersの中身を全て消そうとしてくるマクロになら遭遇したことある
あとはシンプルにブックやシートの指定をちゃんとしてなくて別に開いてたファイルをメチャクチャにしちゃうとかがまぁよくある可愛い話

あとは別に危険ではないけど新規ブックを作成してそこにマクロを乗せてローカルで実行させるってマクロが
書き込んでくるコードにOption Exlicitが含まれてるせいで変数の宣言を強制するにチェックを入れてるとエラー停止するマクロに遭遇した時はおったまげたな

283デフォルトの名無しさん (ワッチョイ 937c-KtHc)2022/05/28(土) 22:16:27.20ID:Yook3X5e0
>>281

284デフォルトの名無しさん (ワッチョイ 934f-XmKI)2022/05/28(土) 22:31:28.88ID:K6Jk35Ar0
初心者でよくあるのは
「すみまdーん、先輩、SQLのDELETE文の発行部分でWHERE区付け忘れてデータ全部消しちゃいましたー」って奴かな
もちろんUPDATE区の場合もある。

当然、UT環境でテストする前だからそうそう致命的になることはないけど
その環境で同時期にテストしてた人達には平謝り、最低1日分のテストデータ作り直しになったりして白い目で見られるようになったりはするな。

285デフォルトの名無しさん (ワッチョイ d968-uCuR)2022/05/28(土) 22:53:19.43ID:OmoOa5jA0
すみまdーんで吹いた

286デフォルトの名無しさん (ワッチョイ 915f-yO3c)2022/05/28(土) 23:22:53.49ID:ns5NBh1I0
>>261


テスト・・・・


って概念無いの?

287デフォルトの名無しさん (ワッチョイ 915f-yO3c)2022/05/28(土) 23:33:20.31ID:ns5NBh1I0
>>263
本気でsuしたあとに

cd /
rm -fr \*

の現場なら見た。悲惨だった。ずいぶん昔だけど、Unixの世界は無情だったな.

xxx ってユーティリティー供給した人がシェルスクリプト間違えて
rm -fr /usr/xxx/* ってやるところに空白入れて rm -fr /usr  /xxx/* ってやって/usr/以下全滅ってのもあったな

それでも、「なんかあったら責任取れるのか??。却下却下!!!」的な阿呆にはなりたくないよな。

その方針だと石器時代にすら進めんわ。

288デフォルトの名無しさん (ワッチョイ e1ac-A9Gv)2022/05/29(日) 00:01:38.67ID:cc4+tff/0
マクロのブック自体を保存する処理なんか入れてて、しょうもない状態で保存しちゃってたのは見たな
結局以前のバージョンから戻してたけど

289デフォルトの名無しさん (ワッチョイ 937c-KtHc)2022/05/29(日) 00:54:19.29ID:AvSqkoWo0
ここにいる的確な回答する人って絶対他の言語やってるよなって思う

290デフォルトの名無しさん (ワッチョイ 2bda-PinD)2022/05/29(日) 01:15:45.22ID:Tyr7S/P60
いや、単にExcel歴30年以上とかのベテランでょ

291デフォルトの名無しさん (ワッチョイ 915f-yO3c)2022/05/29(日) 03:05:24.56ID:IyXpp6fQ0
Excel歴10年以上あると、「あ。これExcel単体じゃ無理だけど、Excelを呼ぶシェルから呼べば秒」って場面ないかな?

292デフォルトの名無しさん (ワッチョイ abda-yO3c)2022/05/29(日) 03:06:21.80ID:5DW63Q/F0
初心者と経験者との間にはかなりの差があるのは確か

293デフォルトの名無しさん (アウアウウー Sac5-AEoY)2022/05/29(日) 06:13:59.41ID:1Frm/WJwa
>>286
テストのつもりが間違って本番環境に接続しててぶっ壊す例なんていくらでもあるだろw

294デフォルトの名無しさん (ワッチョイ a1b1-N3kL)2022/05/29(日) 07:36:30.39ID:6qc9k+Up0
>>293
だから具体的な例をあげてみてよ。
想像でものを語るな

295デフォルトの名無しさん (アウアウウー Sac5-AEoY)2022/05/29(日) 07:46:58.86ID:5POrq48Ha
相当具体的だと思うが?
接続文字列の内容を知りたいとかか?w

296デフォルトの名無しさん (ワッチョイ e1ac-A9Gv)2022/05/29(日) 08:04:47.09ID:cc4+tff/0
あーコピペしてそれをループすればいいと思ったのか
N+1みたいなの書いてmax connectionsかなんかでDBに接続できなくしたのもいたなあ

297デフォルトの名無しさん (ワッチョイ 934f-XmKI)2022/05/29(日) 08:21:24.43ID:Mw5w5FDK0
>>293
確かにあるあるだけど
初心者に本番環境弄らせることはまずない
そんなこさせる会社や現場は既に破綻している

298デフォルトの名無しさん (ワッチョイ 9342-HoF8)2022/05/29(日) 08:33:34.28ID:TXsSTtjO0
あるあるだけどまずないってどっちだよ

299デフォルトの名無しさん (ワッチョイ d968-uCuR)2022/05/29(日) 08:41:22.22ID:3FlTI83O0
たまによくあるの親戚

300デフォルトの名無しさん (ワッチョイ a1b1-N3kL)2022/05/29(日) 10:12:00.37ID:6qc9k+Up0
初心者はVBAどころか関数使うのも生意気とされる職場もあるからな。電卓で計算して結果を表に手入力してるようなとこだと

301デフォルトの名無しさん (アウアウウー Sac5-AEoY)2022/05/29(日) 12:04:43.00ID:g2O32ybKa
>>297
> 初心者に本番環境弄らせることはまずない
お前さんの経験値が低いだけかと
> そんなこさせる会社や現場は既に破綻している
そうだね、でもあるという事実は変わらんけどね

302デフォルトの名無しさん (エアペラ SDeb-BpIg)2022/05/29(日) 12:08:27.47ID:+JwoCmYYD
そこマウント取ってどうするの?って話題で盛り上がるよねこのスレ

303デフォルトの名無しさん (ワッチョイ a1b1-N3kL)2022/05/29(日) 12:18:30.79ID:6qc9k+Up0
質問スレなんて基本的に初心者の来る場所なのに、そこで初心者はマクロ使うなと言われてもね

304デフォルトの名無しさん (ワッチョイ 915f-yO3c)2022/05/29(日) 12:25:41.24ID:G+XUYeIa0
VBAがExcel内の機能しか扱えないよう制限された設計になってるのならわかるが
実際にはファイルやデータベース操作、
やろうと思えばHTTP通信やUI Automationだって「できてしまう」以上、
危険な挙動は常に発生しうるでしょ

305デフォルトの名無しさん (ワッチョイ 1359-Qyq5)2022/05/29(日) 12:29:48.36ID:Orp1XQOd0
表の左にラジオボタンを配置、表をリボンのフィルタ機能で絞り混むと、ラジオボタンが大集合してしまう。
これを何とかしようとセル移動しても一緒に移動しない設定にしたら今度は絞るとラジオボタンが残ったままになる。

フィルタで絞ったところの左のボタンだけ表示させる方法教えてください。

306デフォルトの名無しさん (エアペラ SDeb-BpIg)2022/05/29(日) 12:30:57.02ID:+JwoCmYYD
しうるから使うなではなく、
使うなら気を付けろでいい話でしょ
本人のやらかしの責任を負うわけではないんだしさ
なんならVBAもしくはム全般でのやらかしスレでも作ってそこでやる?

307デフォルトの名無しさん (エアペラ SDeb-BpIg)2022/05/29(日) 12:36:51.39ID:+JwoCmYYD
>>305
ここで聞くとスレタイにちなんだ回答になるけど良い?

308デフォルトの名無しさん (ワッチョイ 1359-Qyq5)2022/05/29(日) 12:50:30.05ID:Orp1XQOd0
>>307
先生お願いします!

309デフォルトの名無しさん (ワッチョイ 2b10-KtHc)2022/05/29(日) 13:49:12.25ID:82tDbVM80
>>303
何という結論 笑

310デフォルトの名無しさん (アウアウウー Sac5-AEoY)2022/05/29(日) 14:16:13.78ID:43IRGv4Ka
てか、初心者云々は別にしてマクロ書かない人が来るスレじゃないでしょ

311デフォルトの名無しさん (ワッチョイ 2bda-PinD)2022/05/29(日) 14:22:21.96ID:Tyr7S/P60
どんな層がきてるのかな?
事務員さんばかり?

312デフォルトの名無しさん (ワッチョイ 992f-SJsm)2022/05/29(日) 14:27:51.93ID:Ocf930r70
ハゲて層な人かへ来ています

313デフォルトの名無しさん (ワッチョイ 992f-SJsm)2022/05/29(日) 14:28:07.01ID:Ocf930r70
ハゲて層な人が来ています

314デフォルトの名無しさん (スフッ Sdb3-ibZ+)2022/05/29(日) 14:47:38.40ID:tM27peK8d
むしろ剛毛で困ってるstep 3でdeleteしたいわ

315デフォルトの名無しさん (ワッチョイ 934f-XmKI)2022/05/29(日) 18:08:08.67ID:Mw5w5FDK0
>>301
そうか
破綻したブラック企業に勤めているのか
大変だな

316デフォルトの名無しさん (アウアウウー Sac5-AEoY)2022/05/29(日) 18:28:41.40ID:hxkiJ2jHa
>>315
もう定年退職したけどうちの会社は普通に存続してるけど?
いろいろな部署があることも知らないとか零細にお勤めなのかな?w

317デフォルトの名無しさん (ワッチョイ 2bda-PinD)2022/05/29(日) 18:47:14.53ID:Tyr7S/P60
禿と白髪だらけってどっちが印象悪い?

318デフォルトの名無しさん (ワッチョイ 992f-SJsm)2022/05/29(日) 18:53:36.06ID:Ocf930r70
ハゲです

319デフォルトの名無しさん (ワッチョイ b902-CQbZ)2022/05/29(日) 19:01:01.21ID:5/KWOkVq0
>>317
眉毛なし

320デフォルトの名無しさん (ブーイモ MM05-rAsz)2022/05/29(日) 19:43:11.20ID:EFc1zn8HM
エージェント47の見た目が悪いようには見えないからハゲはセーフです

321デフォルトの名無しさん (アウアウウー Sac5-AEoY)2022/05/29(日) 20:10:27.98ID:AWvveSwHa
それはいつもの「ただしイケメンは除く」って奴だからお前らはアウトだよ

322デフォルトの名無しさん (ワッチョイ 2bda-PinD)2022/05/30(月) 08:08:23.93ID:OyYzutpm0
白人様ならスキンヘッドが似合うから許す

323デフォルトの名無しさん (スフッ Sdb3-ibZ+)2022/05/30(月) 08:22:04.62ID:5eMIb3Vrd
イッピーカイエー、マザファッカー

324デフォルトの名無しさん (アウアウウー Sac5-PinD)2022/05/30(月) 08:49:54.54ID:6bPCzkava
Excelできるヤツは禿が多い噂

325デフォルトの名無しさん (ブーイモ MMab-yO3c)2022/05/30(月) 10:02:36.84ID:9WWLvtDBM
なんでわかった?

326デフォルトの名無しさん (ワッチョイ 9917-rAsz)2022/05/30(月) 10:14:24.43ID:Yd1KWPfN0
……君のような勘のいいガキは嫌いだよ

327デフォルトの名無しさん (ワッチョイ 99da-yO3c)2022/05/30(月) 10:46:02.07ID:111npCAX0
ハゲに関する英国法廷の判決と
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/

スレチ、お粗末。

328デフォルトの名無しさん (ワッチョイ 93ad-zgJ4)2022/05/30(月) 11:31:07.50ID:pTyzyEGo0
ユーザーフォーム上のボタンをクリックすると、

Private Sub CommandButton1_Click()

End Sub

のように挿入されますが、この挿入位置には法則性はありますか?

329デフォルトの名無しさん (ワッチョイ 2bda-PinD)2022/05/30(月) 12:13:30.87ID:OyYzutpm0
じゃあ今度からこのスレのみんなの事を禿って呼んでええか?

330デフォルトの名無しさん (ワッチョイ 09ce-yO3c)2022/05/30(月) 12:20:22.39ID:wDXjGZuh0
俺はExcel全然できないんだけど

331デフォルトの名無しさん (ワッチョイ 9917-rAsz)2022/05/30(月) 12:20:41.12ID:Yd1KWPfN0
毎回豊田真由子口調で言うなら許す

332デフォルトの名無しさん (ワッチョイ abda-yO3c)2022/05/30(月) 13:30:00.03ID:0Z9/8mJh0
>>328
自分で試すことってできませんか?

333デフォルトの名無しさん (ブーイモ MM75-yO3c)2022/05/30(月) 14:03:07.86ID:OgQlhvU6M
この、は♥げ♥

334デフォルトの名無しさん (ブーイモ MM75-yO3c)2022/05/30(月) 14:03:43.38ID:OgQlhvU6M
>>328
あります

335デフォルトの名無しさん (ワッチョイ 992f-SJsm)2022/05/30(月) 16:13:01.26ID:ytFfApAu0
STAP細胞はありますか?

336デフォルトの名無しさん (アウアウウー Sac5-2OYr)2022/05/30(月) 16:27:46.26ID:Z6OL71NLa

337デフォルトの名無しさん (ワッチョイ 93ad-zgJ4)2022/05/30(月) 19:45:13.20ID:pTyzyEGo0
何か変な奴が増えたな。
前はまともな回答が得られたんだけど。
無職か

338デフォルトの名無しさん (ワッチョイ 49da-pgQP)2022/05/30(月) 22:28:34.36ID:U5Ze+/Ia0
このハゲー

339デフォルトの名無しさん (ワッチョイ 2bda-PinD)2022/05/31(火) 05:25:49.12ID:qZPc3K6R0
この禿げぇぇぇ!!

340デフォルトの名無しさん (ワッチョイ 99da-yO3c)2022/05/31(火) 12:16:40.12ID:e8W8kp4L0
剃ってますが、何か?

341デフォルトの名無しさん (ワッチョイ 2bda-PinD)2022/05/31(火) 15:23:45.24ID:qZPc3K6R0
ツルッツル!

342デフォルトの名無しさん (ワッチョイ abda-yO3c)2022/05/31(火) 17:25:59.49ID:1k2p4OCO0
頭が守られなくなるから剃らない方がいいのに

343デフォルトの名無しさん (ワッチョイ b1a5-yO3c)2022/05/31(火) 23:09:32.48ID:rnWQ7LEg0
サマータイムめんどくせぇな…
今サマータイムかどうか表示したいんだけど誰か式作って笑
VBAでも数式でもどっちでもOK

344デフォルトの名無しさん (ワッチョイ 09ce-yO3c)2022/05/31(火) 23:14:34.97ID:0qvYGG5m0
サマータイムは国によって違うし年によっても違う
あと自分で作らなくてもあるからぐぐれ

345デフォルトの名無しさん (ワッチョイ 2bda-PinD)2022/06/01(水) 10:31:55.12ID:LqJbFkjG0
ググるでググれ
何回言われたか

346デフォルトの名無しさん (スッップ Sdb3-11kL)2022/06/01(水) 18:42:16.08ID:4MDL/f8zd
2022年のサマータイムはいつから? 【開始】2022年3月27日(日)午前1時 → 午前2時へ1時間進める【終了】2022年10月30日(日)午前2時 → 午後1時へ1時間戻す(遅らせる)※スイスはUT1の国なので、上記時間にプラス1時間足した時間を基準とする。

ぐぐったらこれがでてきたからこれで計算すればいいのでは

347デフォルトの名無しさん (ワッチョイ abda-yO3c)2022/06/02(木) 01:00:25.06ID:ww3inSB20
VBAでやる意味がわからん

348デフォルトの名無しさん (アウアウウー Sac5-G2Bm)2022/06/02(木) 11:08:01.45ID:MPFVtYTLa
>>342
+1

いろんなものにぶつけやすいよなωωωωωωωωω

349デフォルトの名無しさん (ワッチョイ 992f-SJsm)2022/06/02(木) 13:37:12.88ID:wjg1CkCV0
会社ではVBAしか使わしてくれんのじゃ。
アルツハイマーでもこれくらい分かる。

350デフォルトの名無しさん (ワッチョイ abda-yO3c)2022/06/03(金) 01:37:10.45ID:d1WjLs5X0
時刻の書かれたセルの編集するのか?

351デフォルトの名無しさん (スップ Sdb3-95+F)2022/06/03(金) 02:52:19.32ID:mOQ1024Gd
>>350
その程度の発想しか出来ない人は書き込みしなければいいのに

352デフォルトの名無しさん (ワッチョイ abda-yO3c)2022/06/03(金) 05:47:43.61ID:d1WjLs5X0
>>351
自力でサマータイム求められない奴に言えよ

353デフォルトの名無しさん (エアペラ SDf3-BpIg)2022/06/03(金) 07:19:45.45ID:XQuJ+afhD
>>352
このスレの多くの人が当てはまってしまう

354デフォルトの名無しさん (ブーイモ MMab-yO3c)2022/06/03(金) 11:29:40.66ID:pHjmbkhpM
夏が来れば思い出す

355デフォルトの名無しさん (ワッチョイ 9342-HoF8)2022/06/03(金) 15:31:03.54ID:726WZH160
サマーソルトキック

356デフォルトの名無しさん (スップ Sdea-6eUW)2022/06/04(土) 05:59:25.84ID:nF/95LMud
海外ネトゲでサマータイムに苦しめられてるから
VBAじゃないけどC#でちっこいの作ったわ

357デフォルトの名無しさん (スップ Sdea-6eUW)2022/06/04(土) 06:14:22.15ID:nF/95LMud
Application.OnTime 使えば、一分ごとに表示変えるとかできるね
あとは面倒だけどサマータイムに入る日時と出る日時計算する関数作って・・と

358デフォルトの名無しさん (エアペラ SDca-QMxd)2022/06/04(土) 07:08:46.25ID:wpuL0IDQD
サマータイムこれから実装なんて何回車輪の再発明するつもりだろう

359デフォルトの名無しさん (ワッチョイ c6da-Rebr)2022/06/04(土) 14:35:11.71ID:2NGB/tgF0
>>356
やってることruby厨と一緒だな

360デフォルトの名無しさん (ワッチョイ 1a3d-Xy6N)2022/06/04(土) 15:02:27.19ID:a2v34LYj0
VBAで自分自身のファイル名を持ってくる場合て、
エクセルVBAなら
Debug.Print ThisWorkbook.Name
パワポVBAなら
Debug.Print ActivePresentation.Name
だけど、
そもそも自分がエクセルなのかパワポなのかを判断することてできる。ActiveDocument

361デフォルトの名無しさん (ワッチョイ 1a3d-Xy6N)2022/06/04(土) 16:08:31.18ID:a2v34LYj0
Excelとワードで同じVBAを流してみたんですが、挙動が異なる。
これってバグ?
Excel VBA 質問スレ Part76 YouTube動画>3本 ->画像>10枚
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

362デフォルトの名無しさん (ワッチョイ a968-79Bc)2022/06/04(土) 16:13:58.10ID:tUjUVaiz0
>>361
単に円の中心をどこにおいて描画するかって違いでしょ
仕様としか

363デフォルトの名無しさん (ワッチョイ 1a3d-Xy6N)2022/06/04(土) 18:56:04.34ID:a2v34LYj0
>>362
確かに違う。
でも、なぜWordとExcelで仕様を変える必要がある?
どっかに明記してあったけ?

364デフォルトの名無しさん (ワッチョイ a968-79Bc)2022/06/04(土) 19:07:16.56ID:tUjUVaiz0
>>363
考え方が逆
エクセルとワードのオブジェクトが全然別物なのに、vbaのコードが似てる事が奇跡なんだよ
俺からすれば、よくぞ無修正で動いてるなってのが素直な感想。結果が同じなんて微塵も期待しない
エクセルvbaをワードvbaに移植しようなんてそもそも思わない

365デフォルトの名無しさん (ワッチョイ 1a3d-Xy6N)2022/06/04(土) 21:44:29.71ID:a2v34LYj0
>>360
自己解決した。
Application.Caption
でなんとなくわかる

366デフォルトの名無しさん (スップ Sdea-jate)2022/06/04(土) 22:59:19.25ID:6tY8trDcd
>>365
馬鹿は日記を書くな
Application.Versionだろうが

367デフォルトの名無しさん (スフッ Sdea-Rebr)2022/06/05(日) 00:15:07.27ID:LBKd1m9qd
ファイル名がわかってるんなら拡張子を見れば?

368デフォルトの名無しさん (ワッチョイ ca4f-QyWa)2022/06/05(日) 05:39:30.94ID:exW/DWN40
どっちも極端
Objectが別物だって理解していれば
使い回しが効く部分は使いまわせる
EXCEL VBAの使える部分をACCESSで使ったり
VBSの挙動確認のためにEXCELのVBAに
落とし込むなんてザラにあること。

369デフォルトの名無しさん (ワッチョイ 1a3d-Xy6N)2022/06/05(日) 06:24:20.21ID:VDGjTDhq0
>>366
バカはお前だろ。
Application.Versionで何が区別がつく。
全部同じ値だ。

370デフォルトの名無しさん (ワッチョイ 0917-+4Ez)2022/06/05(日) 07:45:08.95ID:vTlNlLry0
バカって言う方がバカなんですーの典型的な例

371デフォルトの名無しさん (ワッチョイ 892f-M86+)2022/06/05(日) 09:11:03.70ID:VKHbv3il0
ハゲって言う方がハゲなんですーもよく当てはまる例

372デフォルトの名無しさん (ワッチョイ 4a7c-T4xC)2022/06/05(日) 09:42:13.57ID:GrqOyp5w0
いいから仲良くしろください

373デフォルトの名無しさん (エアペラ SD3d-QMxd)2022/06/05(日) 10:32:25.90ID:5rczsPhbD
セルの書式を配列に保存しておきたい場合、
Rangeオブジェクトの配列を使わなきゃダメですか

374デフォルトの名無しさん (ワッチョイ 0917-+4Ez)2022/06/05(日) 10:55:59.24ID:vTlNlLry0
設定の情報を文字列化すればstring型でもいけるんじゃないかな?
保存したい情報が複数あるならカンマで結合してsplitで取り出せば良いだけだし

375デフォルトの名無しさん (スップ Sdca-Rebr)2022/06/05(日) 11:47:56.31ID:eL6jNkf4d
表示形式と背景色なら文字列にできるけど、書式って文字列に変換可能か?
罫線って文字列で取れたっけ

376デフォルトの名無しさん (ワッチョイ 0917-+4Ez)2022/06/05(日) 13:43:06.66ID:vTlNlLry0
罫線の有無をTrue/Falseで判定すればいけない?

377デフォルトの名無しさん (ワッチョイ ca01-3OWO)2022/06/05(日) 14:12:04.89ID:MGWqyCtZ0
>>375
> 罫線って文字列で取れたっけ
数値(列挙値)で取れるんだからテキトーに文字列化すればいいやん

>>376
太さ、線種(鎖線とか)や色もあるから

378デフォルトの名無しさん (ラクッペペ MMde-g4NU)2022/06/05(日) 14:15:50.06ID:x/GFG4oyM
罫線はRangeオブジェクト(のプロパティ)ではなくてBorderオブジェクト

379デフォルトの名無しさん (アウアウウー Sa11-fRoS)2022/06/05(日) 15:54:50.02ID:udiiYXiVa
// n = 1, 2, 3 or 4
b = sheet.Cells(r, c).Borders(n)
b.Weight 代入&参照
b.LineStyle 代入&参照

380デフォルトの名無しさん (ワッチョイ ca01-3OWO)2022/06/05(日) 16:38:39.08ID:MGWqyCtZ0
>>379
斜め線もあるしそもそもXlBordersIndexは1〜4じゃないぞ
https://docs.microsoft.com/ja-jp/office/vba/api/excel.xlbordersindex

381デフォルトの名無しさん (スフッ Sdea-1xqW)2022/06/05(日) 20:07:10.90ID:dqA2RGZhd
結局Rangeで格納した方が早いわな
配列が嫌ならコレクションとかでも行けるけど

382デフォルトの名無しさん (ワッチョイ 4a7c-T4xC)2022/06/05(日) 20:27:14.52ID:GrqOyp5w0
書式を保存するシートを別に作っておいたほうが楽じゃない?

383デフォルトの名無しさん (ワッチョイ 86da-fOeb)2022/06/05(日) 23:49:37.17ID:YrlocrIV0
禿達ってなんですぐ喧嘩になるの?
お互い譲り合えば良いじゃん。

384デフォルトの名無しさん (ワッチョイ 892f-M86+)2022/06/06(月) 00:12:23.49ID:RB7fKeqq0
おたがいハゲましあっていますよ

385デフォルトの名無しさん (スップ Sdea-jate)2022/06/06(月) 00:18:34.67ID:fgz41eYud
>>383
みるみる毛が減るようになればわかるよ

386デフォルトの名無しさん (ワッチョイ 86da-fOeb)2022/06/06(月) 01:40:02.35ID:CD+x4MGM0
禿鷹のくせに

387デフォルトの名無しさん (ワッチョイ 5dda-jxk8)2022/06/06(月) 01:45:08.65ID:LVkl0QQt0
そこをなんとか、Excelでwebview2を使うことは出来ませんか?

388デフォルトの名無しさん (スップ Sdea-jate)2022/06/06(月) 03:13:52.17ID:fgz41eYud
>>386
馬鹿にするな!うっすらとまだ残っているわ!

389デフォルトの名無しさん (ワッチョイ 892f-M86+)2022/06/06(月) 05:44:12.69ID:RB7fKeqq0
>>388
このハゲ!

390デフォルトの名無しさん (ブーイモ MM71-T4xC)2022/06/06(月) 10:06:09.33ID:JILrjNOSM
>>387
無理、素直に.net使え

391デフォルトの名無しさん (ワッチョイ 89da-Rebr)2022/06/06(月) 13:21:31.23ID:4DEc3eXi0
>>383
> お互い譲り合えば良いじゃん。

「ネコと和解せよ」



(逆再生という指摘もあるが・・・)

392デフォルトの名無しさん (ワッチョイ 1a3d-Xy6N)2022/06/07(火) 22:41:43.65ID:mgVGi2C30
'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.なんとかで操作すればどれでも動く。

393デフォルトの名無しさん (スップ Sdea-jate)2022/06/08(水) 00:49:01.93ID:cIjXs1I0d
>>392
馬鹿の日記はお断り

394デフォルトの名無しさん (ブーイモ MM2e-M86+)2022/06/08(水) 00:54:12.05ID:jfy5wCdsM
ハゲの日記なら大丈夫?

395デフォルトの名無しさん (スップ Sdea-jate)2022/06/08(水) 00:55:55.27ID:cIjXs1I0d
今日は毛が341本抜けました

とか読みたい?

396デフォルトの名無しさん (スップ Sdea-jate)2022/06/08(水) 01:01:21.01ID:cIjXs1I0d
唐突ですが、30歳を過ぎて頭皮を去っていく髪の毛が増えてきました。

今までは粘着力の強いコロコロで定期的に取っていましたが、これが厄介で、頭からからは簡単に抜けるくせにカーペットからはなかなか離れようとしません。
また、いくら自分の髪とはいえ、毛の大群がまとわりついたコロコロを剥がすあの瞬間が最高に嫌いでした。

勿体無いかな…でも欲しいな…など思いつつダ〇ソンのハンディタイプを買おうと迷った事もありましたが、1/5のお値段で高評価のこちらの商品でとりあえず様子見することに。外箱が思っていたよりもかなり小さく、最初は失敗したかと思いましたが、開けてみると質感も良く、これなら部屋のどこに置いても邪魔にならなそうです。

そして肝心の吸引力ですが、あんなにコロコロで取れなかった脱走兵どもが綺麗に吸い込まれていくではありませんか!

ついでにいつぞやの晩酌の際に食べこぼしたクルミの欠片など、多少大きさのある物でも綺麗に吸い込んでくれます。もしかしたらダ〇ソンはもっと強力に吸ってくれるのかもしれませんが、私と同じような悩みをお持ちの方でしたら、これで十分でしょう。アタッチメントも布団用や狭いところ用のものもついていますので便利です。

もういっそ、頭に直接この掃除機をかけた方が早いんじゃないかと思ってしまう程です。

397デフォルトの名無しさん (ワッチョイ 86da-fOeb)2022/06/08(水) 02:36:31.18ID:3hgKnM3d0
ち○毛や脇の下まで薄くなった俺は??

398デフォルトの名無しさん (ワッチョイ 6905-Apbd)2022/06/08(水) 07:20:52.11ID:fAskgOC50
ここはHGのあつまりでつね

399デフォルトの名無しさん (ブーイモ MM2e-+4Ez)2022/06/08(水) 08:24:09.17ID:0P23HUlSM
MGかPGが良いなぁ

400デフォルトの名無しさん (スプッッ Sd72-Rebr)2022/06/08(水) 09:48:44.91ID:pnJSpG8Od
はげもげぱげ

401228 (TW 0Hf2-7/uH)2022/06/08(水) 17:24:59.25ID:C2b/Gc96H
以前こちらでお世話になったものですが、うまくファイルに転記できないためまたお力をお借りしにきました。。

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

402デフォルトの名無しさん (TW 0Hf2-7/uH)2022/06/08(水) 17:26:49.54ID:C2b/Gc96H
コードです 長いので分けます

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

403デフォルトの名無しさん (TW 0Hf2-7/uH)2022/06/08(水) 17:27:20.86ID:C2b/Gc96H
'エリアが空欄の位置までループ
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

404デフォルトの名無しさん (TW 0Hf2-7/uH)2022/06/08(水) 17:27:41.62ID:C2b/Gc96H
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

405デフォルトの名無しさん (TW 0Hf2-7/uH)2022/06/08(水) 17:31:00.27ID:C2b/Gc96H
元データを少なくして全部で50行くらいにしたら上手くファイルを分けて保存出来てたんですが、、、
もし問題点がお分かりになる方いらっしゃったらよろしくお願いしたいです(>_<)

406デフォルトの名無しさん (ワッチョイ c6da-3oMX)2022/06/08(水) 18:24:26.53ID:38a4SNrC0
integerの最大っていくつまでだっけ?

407デフォルトの名無しさん (アウアウウー Sa11-3OWO)2022/06/08(水) 18:40:07.58ID:lFvBESVva
2 ^ 15 - 1 = 32767 じゃね

408デフォルトの名無しさん (ワッチョイ 2501-+4Ez)2022/06/08(水) 18:40:44.71ID:mwMQbcQT0
ググれよ

409デフォルトの名無しさん (ワッチョイ c1da-/lmG)2022/06/08(水) 19:08:37.35ID:/v6Td7Qv0
>>396
面白いんですけど何で商品の話ですか

410デフォルトの名無しさん (アウアウウー Sa11-fRoS)2022/06/08(水) 19:25:08.52ID:2MMAQscUa
32bitのexcelと64bitのexcelでintの範囲違うんだろうか
(もちろんOSの話ではない)

411デフォルトの名無しさん (ワッチョイ c6da-Rebr)2022/06/08(水) 19:34:40.24ID:38a4SNrC0
>i = i + 1 'コピー先の行を一つ下にずらす。

ってあるから貼り付け先が integer 超えたらだめじゃねって思った

412デフォルトの名無しさん (スッップ Sdea-1xqW)2022/06/08(水) 19:43:22.59ID:60yE+Uw7d
Dim 残りの髪の毛 As byte
Dim 抜け毛 As LongLong

あとよろしく

413デフォルトの名無しさん (TW 0Hf2-7/uH)2022/06/08(水) 19:45:48.83ID:C2b/Gc96H
>>411
なるほど!どうりで最後まで貼られてなかったんだ(´;ω;`)早速ありがとうございます。
ちょっと自分でやり直してみます!!m(__)m

414デフォルトの名無しさん (TW 0Hf2-7/uH)2022/06/08(水) 19:46:53.74ID:C2b/Gc96H
>>412
流れぶった切ってゴメンなさい

でも考えすぎてハゲそうな勢いでした。。頭悪くてイヤになります。。

415デフォルトの名無しさん (TW 0Hf2-7/uH)2022/06/08(水) 20:12:39.32ID:C2b/Gc96H
ダメだ、integerをlongに替えてやってみたけど
やはり半分以下しか貼られませんでした。

もう少し頑張ってみます

416デフォルトの名無しさん (TW 0Hf2-7/uH)2022/06/08(水) 20:25:07.29ID:C2b/Gc96H
自己解決しました。1つのエリアの塊が飛び飛びになってたので
同じエリアのブック内で上書きされてたみたいです。

でも皆さんのおかげで解決出来ました。ありがとうございました!
またハゲそうになったらこちらに伺いたいです。。懲りずによろしくお願いいたしますm(__)m

417デフォルトの名無しさん (ワッチョイ 86da-fOeb)2022/06/08(水) 22:42:41.32ID:3hgKnM3d0
また毛

418デフォルトの名無しさん (ワンミングク MM61-aTQF)2022/06/09(木) 00:00:12.33ID:XIUzPNKLM
※よろず~ニュース

波平さん銅像に髪の毛戻る 引き抜かれてから5日の〝スピード植毛〟
https://yorozoonews.jp/article/14640597

杉田 康人

Excel VBA 質問スレ Part76 YouTube動画>3本 ->画像>10枚

東京都世田谷区の桜新町商店街にある人気アニメ「サザエさん」一家の銅像から引き抜かれていた髪の毛が8日、復活した。同商店街によると3日朝、波平さんのトレードマークとなっている貴重な1本毛が抜かれているのが見つかった。ワカメちゃんの頭頂部から跳ね出した〝アホ毛〟3本もなくなっていたが、商店街の依頼を受けた業者が8日午後までに修復した。

サザエさん一家は、桜新町に住んでいる設定。作者の長谷川町子氏の美術館・記念館おひざ元の桜新町商店街は、作品ゆかりのストリートとして知られる。銅像は2012年(平成24)に建立したが、商店街の担当者によると波平さんはこれまでに6度、毛を引き抜かれる憂き目に遭っている。ワカメちゃんの髪が抜かれるのは初だという。

 銅像の髪の毛は、針金にビニールをコーティングしたもの。(略)

※省略していますので全文はソース元を参照して下さい。

419デフォルトの名無しさん (ブーイモ MM39-M86+)2022/06/09(木) 04:46:01.01ID:CxlByAWLM
このハゲ
      / ̄ ̄ ̄ ̄ ̄ ̄\
    /             \
   /                  ヽ 
    l:::::::::.                  | 
    |::::::::::   (●)     (●)   | 
   |:::::::::::::::::   \___/     |  
    ヽ:::::::::::::::::::.  \/     ノ

420デフォルトの名無しさん (ワッチョイ ca4f-QyWa)2022/06/09(木) 19:07:14.80ID:cD/wL2EQ0
いや
お前らハゲ散らかし過ぎだろ

421デフォルトの名無しさん (ワッチョイ 892f-M86+)2022/06/09(木) 21:45:50.80ID:WYCVR9XP0
>>420
そんなつもりは毛頭ございません

422デフォルトの名無しさん (ワッチョイ 86da-fOeb)2022/06/09(木) 22:38:52.28ID:pASwhhxq0
パソコンばっかやっているから禿るんだわ
いい加減気がつけよ

423デフォルトの名無しさん (スッップ Sdea-1xqW)2022/06/09(木) 22:48:34.88ID:/RbqsnKRd
禿げてる奴がパソコンばっかやるようになるんだわ
人生って残酷だよな

424デフォルトの名無しさん (ワッチョイ 892f-M86+)2022/06/10(金) 07:26:23.24ID:1o37Jrb90
もうしわ毛ありません

425デフォルトの名無しさん (ワッチョイ 86da-fOeb)2022/06/10(金) 07:28:26.18ID:rEbuXRdM0
真面目に話すと、パソコン作業は頭使うしストレスの負荷が高いから禿やすいとは聞いた。

426デフォルトの名無しさん (ワッチョイ 1abd-+jz7)2022/06/10(金) 08:55:47.16ID:kCKMlptW0
人間関係の煩わしさでストレスの負荷が多い場合が多いから、パソコン作業はハゲにくいらしいよ

427デフォルトの名無しさん (スフッ Sdea-Rebr)2022/06/10(金) 12:04:33.87ID:F7hdpVFcd
パソコンからは強い電磁波が出てるから、パソコン作業は禿げやすいとは聞いた。

428デフォルトの名無しさん (アウアウウー Sa11-3oMX)2022/06/10(金) 12:51:05.36ID:zP3+9Ywoa
ハゲ対策の情報もいっぱい持ってるから予防できる

429デフォルトの名無しさん (ワントンキン MM5a-+jz7)2022/06/10(金) 13:28:56.18ID:dcEjX7ueM
男性ホルモンの優位でハゲるから(*ノω・*)テヘ

430デフォルトの名無しさん (スッップ Sdea-1xqW)2022/06/10(金) 13:52:15.99ID:6StqYoESd
パソコンの前でやる事と言ったらそれしか無いからな

431デフォルトの名無しさん (ワッチョイ 86da-fOeb)2022/06/10(金) 18:44:17.05ID:rEbuXRdM0
男性ホルモンが盛んなのですから禿る

432デフォルトの名無しさん (スッップ Sdea-QKcq)2022/06/10(金) 22:17:29.28ID:e4qm213id
このスレで質問するレベルの馬鹿が作ったExcel表のせいで葛飾区の保育所は大騒ぎ

433デフォルトの名無しさん (ワッチョイ 85a5-Rebr)2022/06/10(金) 22:31:48.31ID:lQlywAWy0
エクセル2016で複数のbook開いてると単体で開いてるときよりもずっとVBAの動作が遅くなるんだけど
解決策知ってる人いる?

434デフォルトの名無しさん (ワッチョイ 4a42-TpYW)2022/06/10(金) 22:34:53.56ID:/aCQrqDp0
複数開かなきゃいいんじゃね

435デフォルトの名無しさん (HK 0H1a-7/uH)2022/06/10(金) 23:02:11.31ID:yoZYMWv5H
>>432
(´;ω;`)

436デフォルトの名無しさん (ワッチョイ 86da-fOeb)2022/06/10(金) 23:11:39.01ID:rEbuXRdM0
>>432
え?詳しく
ググっても詳細出てこない。
禿そうだわ

437デフォルトの名無しさん (ワッチョイ 86da-fOeb)2022/06/10(金) 23:14:29.48ID:rEbuXRdM0
あ、葛飾区のニュース出て来た
表計算ソフト式に誤りとか最低だろう。
テストしなかったのかな?

438デフォルトの名無しさん (ブーイモ MM71-Rebr)2022/06/10(金) 23:17:41.83ID:Vb4kLAL3M
>>436
検索初心者か?
普通にぐぐって一発で出るんだが
https://xtech.nikkei.com/atcl/nxt/news/18/13050/

439デフォルトの名無しさん (ワッチョイ 5d93-QMxd)2022/06/10(金) 23:24:30.64ID:bPqrOIr80
どーせsubtotalじゃなくsumで小計出してたせいで合計が2重計上されたとかじゃねーの

440デフォルトの名無しさん (スッップ Sd1f-UWq1)2022/06/11(土) 00:03:58.02ID:peHZyvXnd
Dick A as strong
Dick B as strong

If A > B then
A = Tachi
B = Uke
End if

A => B

441デフォルトの名無しさん (ワッチョイ ff7c-a420)2022/06/11(土) 00:50:08.66ID:c8NiZZbH0
>>440
ツッコミどころ満載やな

442デフォルトの名無しさん (ワッチョイ ff4f-LHJ+)2022/06/11(土) 09:42:09.94ID:k8BssVI/0
A もB も
強そうな型だなオイ

443デフォルトの名無しさん (ワッチョイ cfda-aoxg)2022/06/11(土) 11:19:57.24ID:zJAfd1A70
ストロングチューハイはやばい酔い方する

444デフォルトの名無しさん (ブーイモ MM67-GGE9)2022/06/11(土) 12:41:06.40ID:CM4vZAaMM
A = Bだとどうなるの?

445デフォルトの名無しさん (ワッチョイ 7317-Vvh6)2022/06/11(土) 14:14:10.27ID:ZxVNHiJ20
なんで竿がデカい方が攻めなんだよ
はっ倒すぞ

446デフォルトの名無しさん (ブーイモ MM27-IRXD)2022/06/11(土) 14:27:57.92ID:8O7zsVZWM
どこにも竿の大きさなんて書いてない
クラス定義まで見ない限り、何を比較してるのか、このコードだけではわからない
さては思い込みでコードを書いてバグを発生させちゃうタイプだな?

447デフォルトの名無しさん (ワッチョイ cfda-aoxg)2022/06/11(土) 15:03:55.80ID:zJAfd1A70
分かってないだけでしょ

448デフォルトの名無しさん (ワッチョイ 7317-Vvh6)2022/06/11(土) 16:08:12.40ID:ZxVNHiJ20
If Dick(竿)A>DickB Then A=タチって書いてあんじゃんか

449デフォルトの名無しさん (ブーイモ MMff-GGE9)2022/06/11(土) 16:33:22.04ID:k7wiIunZM
Strongは精力じゃね?
大きさならSizeとかLengthとか

450デフォルトの名無しさん (ワッチョイ cfda-aoxg)2022/06/11(土) 18:37:34.42ID:4UGI/r2E0
禿は精力が強い

451デフォルトの名無しさん (ワッチョイ cfda-GGE9)2022/06/11(土) 19:01:23.35ID:qcSYfg6i0
B = Not(A)
じゃね

452デフォルトの名無しさん (ブーイモ MMff-GGE9)2022/06/11(土) 20:12:32.64ID:VlCDkB2oM
DickクラスのSizeプロパティは読み取り専用
Electプロパティは代入可能
Cumメソッドは1日5回以上使うと例外発生

453デフォルトの名無しさん (ワッチョイ 23da-JG4s)2022/06/11(土) 21:54:22.38ID:Ejve8RvI0
ShapeとTextBoxをマクロで作ったのを
別のBookのSheetにコピペした時のフォントは
マクロ側とコピペ側だとどちらに依存しますか?

454デフォルトの名無しさん (ワッチョイ f368-zkCy)2022/06/11(土) 22:02:30.68ID:TK5b+qDd0
聞く前にやったほうが早いだろw

455デフォルトの名無しさん (ワッチョイ 6302-/e9c)2022/06/11(土) 22:04:32.17ID:XvS1eUBu0
質問失礼いたします。
ユーザー定義型に以下のようなツリー型になる感じの物を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プロシージャで
シートへ値を取りに行かせる具合です。

456デフォルトの名無しさん (ワッチョイ ff42-kGh4)2022/06/11(土) 22:38:15.29ID:kVPUfUKj0
正解はない

457デフォルトの名無しさん (ワッチョイ 6302-/e9c)2022/06/11(土) 23:57:34.93ID:XvS1eUBu0
>>456
ありがとうございます。前者の方法で行ってみます。

458デフォルトの名無しさん (ワッチョイ cfda-GGE9)2022/06/12(日) 00:52:49.29ID:SFQsQSvz0
戦車の砲塔で行ってみてやりにくかったら変えればいいんじゃね

459デフォルトの名無しさん (スッップ Sd1f-UWq1)2022/06/12(日) 01:40:55.69ID:QoN69QoAd
芋芋亀してみます!

460デフォルトの名無しさん (ワッチョイ bf3d-VcWV)2022/06/12(日) 18:48:33.62ID:cJxXuNHT0
文字列の一部分に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
オブジェクトが必要て言われる。
どうすればいいの?

461デフォルトの名無しさん (ブーイモ MM67-bhaQ)2022/06/12(日) 19:03:38.39ID:M5mGZ9TuM
format(123, "000000000")じゃ駄目なの?

462デフォルトの名無しさん (スップ Sd1f-/e9c)2022/06/12(日) 19:09:33.96ID:DaJUN4Jhd
Mid(a, 2, 5) = 123
の右辺を数字のままにしてるからおかしくなると思うので
CStr(123)みたいに文字列にしてからセットすればいいんじゃ

463デフォルトの名無しさん (ワッチョイ f368-zkCy)2022/06/12(日) 19:30:47.38ID:ImMFuzyy0
むしろ
Mid(a, 2, 5) = 123
これでなんでaが012300000になるの?どう評価されてるの?

464デフォルトの名無しさん (ワッチョイ f368-zkCy)2022/06/12(日) 19:37:46.32ID:ImMFuzyy0
???

Sub foo()

a = 0
Mid(a, 1) = "aaa" '通る
Right(0, 2) = "bbb" 'エラー
Debug.Print a

End Sub

465デフォルトの名無しさん (ワッチョイ 6393-TIMK)2022/06/12(日) 20:39:25.03ID:uZt7xySi0
自分ならright("000000000" & "123"の右側を取る

466デフォルトの名無しさん (スップ Sd1f-/e9c)2022/06/12(日) 21:12:13.58ID:DaJUN4Jhd
ああ右詰で数字をいれたいのか
自分のレスは無視して
そもそも桁数も統一してないからそこから見直せ

467デフォルトの名無しさん (ワッチョイ bf3d-VcWV)2022/06/12(日) 21:35:58.65ID:cJxXuNHT0
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 はエラーになる

468デフォルトの名無しさん (ワッチョイ f368-zkCy)2022/06/12(日) 21:46:31.55ID:ImMFuzyy0
それ以前に
Mid(a, 2, 5) = Format(123, "00000")
でエラーが出ないのがおかしいだるお

469デフォルトの名無しさん (ワッチョイ cfda-GGE9)2022/06/12(日) 21:52:55.42ID:SFQsQSvz0
ちなみに -123 のときどうする?

470デフォルトの名無しさん (スプッッ Sd1f-UGZ9)2022/06/12(日) 22:19:45.52ID:+/mRZvLHd
ID:ImMFuzyy0

馬鹿は黙っていればいいのに
そうやって馬鹿を曝け出していると頭の皮膚も曝け出されるぞ

471デフォルトの名無しさん (ワッチョイ 9349-KFM3)2022/06/12(日) 22:37:23.13ID:aOGWTw070
midステートメントは今ある文字列に対して別の文字列を被せるだけの動作だよ

472デフォルトの名無しさん (ラクッペペ MM7f-Y3OE)2022/06/12(日) 23:03:38.74ID:b6RzJ+XoM
別の文字列を被せるのは仕様外動作だと思うけどな

473デフォルトの名無しさん (ワッチョイ f368-zkCy)2022/06/12(日) 23:07:02.46ID:ImMFuzyy0

474デフォルトの名無しさん (ラクッペペ MM7f-Y3OE)2022/06/12(日) 23:10:22.37ID:UzvPms3IM
引数以外の手段で関数に値を代入(?)するという前代未聞の珍動作
何が起きるか分かったもんじゃない

475デフォルトの名無しさん (ワッチョイ bf3d-VcWV)2022/06/12(日) 23:13:02.41ID:cJxXuNHT0
つまり
Mid(a, 2, 5) = 123

aの2文字目から5文字分ところに、"123"を書き込むんだけど、
3文字しかないから、4-5文字目は何もしないてことだよね。
でも代入の原則論から言えば、足りない部分はスペースで埋めるんじゃないのか?
RSetは足りない部分はスペースで埋めてる。
まあ、それが仕様だて言えばそうだけど、
深く考えて作られてないのかな。
もし、RSetも3文字しか代入しないのなら、RIGHTやFORMATを使わなくても0埋めができるし、
単純な代入だから性能もいいはず。

476デフォルトの名無しさん (ワッチョイ bf3d-VcWV)2022/06/12(日) 23:16:04.57ID:cJxXuNHT0
>>473
それはmid関数。
midステートメントとは別物だよwww。
https://docs.microsoft.com/ja-jp/office/vba/language/reference/user-interface-help/mid-statement
オレもさっき知ったんだがwww

477デフォルトの名無しさん (ラクッペペ MM7f-Y3OE)2022/06/12(日) 23:29:45.68ID:nFfW5LM6M
そんなものがあったのか!?
けど代入元の型は文字列になってるけど数値を代入していいのか?

478デフォルトの名無しさん (ワッチョイ f368-zkCy)2022/06/12(日) 23:33:25.21ID:ImMFuzyy0
>>476
ありがとう!!!
気になって眠れないとこだった。俺の頭がおかしくなったのかと思ったわw

ステートメント、一度目を通しておいたほうがいいね
https://excel-ubara.com/EXCEL/EXCEL908.html
>>477
vbaで何をいっとるんじゃい

479デフォルトの名無しさん (ワッチョイ bf3d-VcWV)2022/06/12(日) 23:54:08.09ID:cJxXuNHT0
>>477
どの言語もできるような気もするが。
出来ない言語なんかあったけ?
化石のような言語のCOBOLでもできる。
COBOLだと9型の変数があって、VBA風にかくと
Dim a as 99999
a = 123
でaを00123にしてくれる。
a=RIGHT("00000" & 123,5)なんてやってるのをみて驚いたわ。

480デフォルトの名無しさん (ワッチョイ 6310-JG4s)2022/06/12(日) 23:56:26.34ID:as/ibVfq0
ちなみに、MidステートメントはLetステートメントと違ってヒープ領域の再確保を行わないようなので
めちゃくちゃいっぱい文字列を結合したり置き換えたりする文字列操作をMidステートメントで高速化できたりはする
色々注意しなきゃならんしめんどいけど

481デフォルトの名無しさん (ラクッペペ MM7f-W/Na)2022/06/13(月) 14:10:09.78ID:cuhQaR4kM
mid("00000",5-len(a),len(a))=a
なんてやってるの?

482デフォルトの名無しさん (スッップ Sd1f-/e9c)2022/06/13(月) 15:41:58.25ID:e6QxpplAd
文字列の一部分に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のようなコードがいいと思うけど

483デフォルトの名無しさん (エアペラ SD07-TIMK)2022/06/13(月) 18:10:47.94ID:S+tXl/uoD
自分なら
right("00000" & 123, 5)
って書く

484デフォルトの名無しさん (ワッチョイ cfda-GGE9)2022/06/13(月) 18:28:06.25ID:CiY+fWgN0
セルの書式設定に 0000# って書けばいいのに

485デフォルトの名無しさん (スッップ Sd1f-UWq1)2022/06/13(月) 19:38:44.31ID:5YQd33j2d
いやどうせVBAでやるならNumberFormatLocalでやろうよ

486デフォルトの名無しさん (ワッチョイ 835f-sOFp)2022/06/13(月) 20:02:21.45ID:3bSnFxDm0
要件にもよるが正規表現とFormat()で。

487デフォルトの名無しさん (ワッチョイ bf3d-VcWV)2022/06/13(月) 21:14:24.62ID:c4yOIzj40
>>482
https://www.moug.net/tech/exvba/0140045.html
MIDステートメントのほうが速いらしい。
でもオレが試したら逆だったけど・・・・

488デフォルトの名無しさん (ワッチョイ cfda-aoxg)2022/06/13(月) 22:37:41.37ID:pISmU68J0
みんなのコードカッコいいわ
やっぱりコードはカッコ良くなきゃ舐められるわな

489デフォルトの名無しさん (ワッチョイ ff7c-a420)2022/06/14(火) 01:08:48.71ID:GVYlqPTN0
>>488
他に見るやつがいないなら動きゃいいとか思ってしまう

490デフォルトの名無しさん (ワッチョイ cfda-aoxg)2022/06/14(火) 01:18:48.91ID:MKKHJJii0
てか若者とお年を召された方のコードの書き方が明らかに違うのだが、古臭い目新しいとかあるのかな?

491デフォルトの名無しさん (ワッチョイ ff7c-a420)2022/06/14(火) 02:02:23.05ID:GVYlqPTN0
今は可読性悪いのは駄目ってなってるけど逆に改行や変数名の長さすらケチってた時代もあった
んで言語が進化するにつれて書き方も変わっていった
今でも昔の方法で書けるっちゃ書けるけどそれが古臭いってことだと思う

492デフォルトの名無しさん (ワッチョイ cfda-aoxg)2022/06/14(火) 02:07:02.10ID:MKKHJJii0
お年を召された方(60~70代)のコード見たら、やたら変数ばかり多かった印象が。
変数使わなくても普通に書けばいいじゃんて部分まで変数に入れていた。

493デフォルトの名無しさん (ブーイモ MMff-GGE9)2022/06/14(火) 02:33:52.97ID:TUO2NKc8M
>>492
今でもコード中に定数をそのまま書くのは別に推奨されてないぞ
せめて別の人がコードを見た時に数字の意味がわかるようにしとかないとバグの元になる

494デフォルトの名無しさん (エアペラ SD07-TIMK)2022/06/14(火) 07:10:06.79ID:r7EVbuk4D
>>492のコードはVBAに限らず可読性悪そう

495デフォルトの名無しさん (アウアウウー Sa67-IhGj)2022/06/14(火) 07:54:24.65ID:7uTlYRrCa
>>492
変数にいれないで普通の書くのか?
定数なら定数として定義すると思うが

496デフォルトの名無しさん (スップ Sd1f-Qt8f)2022/06/14(火) 08:25:15.24ID:bcp0w+/6d
>名著「リーダブルコード」に「説明変数」という言葉が出てくる。

497デフォルトの名無しさん (ワッチョイ cfbb-m5pw)2022/06/14(火) 08:35:10.08ID:T3k1EtCC0
マジックナンバーは避けようぜ
後で見返す時に(この4って何を意味してるんだ…?)ってなると効率落ちる

498デフォルトの名無しさん (ワッチョイ bf3d-VcWV)2022/06/14(火) 08:37:28.94ID:YQpYn/pu0
郵便番号+電話番号ていう文字列があるんだが、郵便番号、電話番号を別々の変数に入れたいので
こうしてみたんだがうまくいかない。
なにか手はある?
いま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

499デフォルトの名無しさん (ワッチョイ ff05-bM3h)2022/06/14(火) 09:04:23.14ID:06qw5AlY0
aの文字列が固定長なら
Left(a,7)
Right(a,11)
でダメなんか

500デフォルトの名無しさん (ブーイモ MM27-GGE9)2022/06/14(火) 09:11:18.76ID:b1sVlKW1M
>>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

501デフォルトの名無しさん (ワッチョイ ff01-NwEC)2022/06/14(火) 10:48:30.78ID:WigeF4Tr0
>>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

502デフォルトの名無しさん (スッップ Sd1f-/e9c)2022/06/14(火) 13:04:52.31ID:IIEda1opd
>>487
何を目的とするかによるけど
速度は重視しないのであれば比較的周知されているBの方がいいのではと思うだけで
書き方なんて色々あるんだから試行錯誤すればいいと思う

503デフォルトの名無しさん (スッップ Sd1f-/e9c)2022/06/14(火) 13:11:14.27ID:IIEda1opd
>>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

504デフォルトの名無しさん (ブーイモ MMff-GGE9)2022/06/14(火) 13:57:57.06ID:yUQgc7GAM
>>503
それで代入だけは可能だけど、電話番号が10桁だと末尾に自動的にスペースが入って11文字に補正される
固定長文字列はTrimもできないから、結局構造体を使う方法はトラブルの予感しかしない

505デフォルトの名無しさん (スッップ Sd1f-/e9c)2022/06/14(火) 14:36:41.07ID:IIEda1opd
>>504
与えられたデータだけの回答だからね
与えられた情報以外の事をあーだこーだいう人いるけど
それはその時考えたらよくない?
そもそもそういう事を言い出したら
質問のできるできないはできないって回答になるわけだし

506デフォルトの名無しさん (ワッチョイ 732f-bM3h)2022/06/14(火) 14:46:19.33ID:QIi9ICtD0
与えられたデータっていうか、前提条件がはっきりしないからなぁ
>郵便番号+電話番号ていう文字列がある
以外は試してみたっていうコードからの推測だしな

まあおれなら合体文字列のセッターと郵便番号、電話番号のゲッターのプロパティ持つクラス作るかなぁ
中身はLeftとMidでいいんじゃね

固定長で最速を目指すならLSetもありかもしれんが

構造体うんぬんより、固定長文字列がトラブルの予感を感じさせるんだよなぁ、いろんなところで

507デフォルトの名無しさん (アウアウウー Sa67-IhGj)2022/06/14(火) 15:27:21.00ID:jJwMl27ba
固定長文字列って文字数で良いんだっけ?
全角でもおなじ?

508デフォルトの名無しさん (ワッチョイ 732f-bM3h)2022/06/14(火) 17:23:15.55ID:QIi9ICtD0
>>507
文字数だから全角でも同じはず
というか、文字列はユニコードってことになってるから全角とか半角とかないってことになってるんだよ、いちおう

509デフォルトの名無しさん (ワッチョイ cfda-GGE9)2022/06/14(火) 19:35:25.43ID:vdrsXIkl0
関数2つ作ればいいのにわざわざ構造体やクラスつくる意味あんのかな
処理速度を気にするのは自力で動くの作れるようになってからだぞ

510デフォルトの名無しさん (ワッチョイ 6310-JG4s)2022/06/14(火) 20:24:08.87ID:sqy53zZK0
>>487
簡単にいうと、なんでもMidステートメントに置き換えれば速くなるってわけでもない(そういう使い方にはちょっと注意がいる)
あと固定長文字列はいかにも速そうだが実は可変長文字列よりパフォーマンスが落ちることが割とあって、これまた扱いに注意を要する
まずは自分の望む動作をするコードを完成させることに注力した方がいいんでないかな
(速度改善や利便性向上みたいなのはなんていうか、キリのない作業でもあるし)

511デフォルトの名無しさん (エアペラ SD07-TIMK)2022/06/15(水) 07:33:40.74ID:7lj8rf8tD
>>509
クラス1つ作ればいいのにわざわざ関数2つ作る意味あんのかな、
って疑問を持つ奴もいるからどっちもどっち

512デフォルトの名無しさん (アウアウウー Sa67-IhGj)2022/06/15(水) 10:47:02.71ID:EefWJAwfa
自力でやれるなら好きに組めば良いけど
それもできない初心者だからな

513デフォルトの名無しさん (スプッッ Sd1f-/e9c)2022/06/15(水) 11:15:30.59ID:WoPQ0lFMd
こういうやり方があるよって回答だけすればあとは質問者がそれを選択するだけでいいのに
他人の回答にケチ付けるやつはなんなんだろうと思う

514デフォルトの名無しさん (ブーイモ MMff-GGE9)2022/06/15(水) 11:50:46.53ID:RetoKdFBM
>>513
質問の内容(仕様)が明確じゃない部分を好き勝手に解釈した結果

515デフォルトの名無しさん (ワッチョイ f368-zkCy)2022/06/15(水) 12:43:33.38ID:2pwDzYJj0
>>513>>514
単に性格悪いってだけ

516デフォルトの名無しさん (ワッチョイ 43cc-ffpc)2022/06/15(水) 13:41:42.48ID:HRaMYgOd0
ユーザーフォームに毎回違う数のラベルを作った時に、それぞれのラベルでクリックイベントを作りたいのですが
ラベル数が変動するので作れません。
こういう場合、存在するどのラベルをクリックしたかを調べるにはどうすればいいですか?

517デフォルトの名無しさん (ワッチョイ f368-zkCy)2022/06/15(水) 14:04:25.53ID:2pwDzYJj0
>>516
昔やろうとしたけど超しんどいよ
vb6にはコントロール配列って機能があってそれを使えばよかったけど、
vbaでなぜかなくなっているので絶望的にめんどくさい
他の方法を考えたほうがいい

どうしてもやるなら「vba コントロール配列」あたりで検索して頑張ってくれ。
https://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub05_100_040.html

518デフォルトの名無しさん (スフッ Sd1f-GGE9)2022/06/15(水) 14:41:31.92ID:EFN5k3S5d
>>516
ラベルは最大数で作っといて、必要な分だけVisibleで見せる

519516 (ワッチョイ 43cc-ffpc)2022/06/15(水) 17:15:36.58ID:HRaMYgOd0
>>517
他に方法がなさそうなのでこれでやってみます

>>518
Private Sub Label1_Click() を1000個とか作るのはちょっと汚いので止めておきます

520デフォルトの名無しさん (ワッチョイ 732f-b1tp)2022/06/15(水) 17:23:32.33ID:C/XRb82A0
ラベルを動的に1000個作るのは汚くないのかよ

521デフォルトの名無しさん (ワッチョイ cf10-a420)2022/06/15(水) 17:37:50.64ID:fn3i9wsI0
まずどうして1000個も必要なのかのほうが突っ込みどころな気がする
VBAってフォーム内でクリックした座標の検出できないのかいな

522デフォルトの名無しさん (ブーイモ MM7f-Vvh6)2022/06/15(水) 17:42:47.22ID:Vg/305+8M
クリックイベントを1000個作るぐらいならクラス化しちゃうかなぁ
どっちにしろ面倒臭いけど

大量にラベル設置した時のリネーム作業を簡単に出来る方法何かない?

523デフォルトの名無しさん (ワッチョイ f368-zkCy)2022/06/15(水) 17:51:28.07ID:2pwDzYJj0
いや普通につくるならプルダウンだろ
何かしらで分岐させれば3,4回の選択で済む

524デフォルトの名無しさん (ブーイモ MM7f-Vvh6)2022/06/15(水) 18:13:02.83ID:Vg/305+8M
構内マップを作らされてその上にマインスイーパみたいな升目を作らされ、機器の設置場所を設定出来るようにしたい。場所の指定は分かりづらいから文字だけにするのはNGね。なんて業務を振られる事も稀によくある

525デフォルトの名無しさん (ワッチョイ 732f-b1tp)2022/06/15(水) 18:14:34.90ID:C/XRb82A0
何をどうしたいのか知らんし、その1000個の元データはどっからどう持ってくるのかしらんけど
Excel VBAだしな
俺ならシートで選択させてフォームのボタンかな

526デフォルトの名無しさん (ワッチョイ 732f-b1tp)2022/06/15(水) 18:28:15.26ID:C/XRb82A0
>>524
で、それを実現するのがEXCEL VBAでラベル1000個なのか?
いろいろ検討して最終的にそれしかないとなったならまあご愁傷様
そうじゃないならあほとしか思えん

527デフォルトの名無しさん (ブーイモ MM7f-Vvh6)2022/06/15(水) 18:47:53.19ID:Vg/305+8M
それしかないじゃなくてそれしか許されないんだよ
アホかって思いながらやってるよ

528デフォルトの名無しさん (ワッチョイ f3e6-W/Na)2022/06/15(水) 18:57:22.93ID:myHzQmQR0
マス目なら座標取ればいいような気がするが許されないなら仕方がないな

529デフォルトの名無しさん (ワッチョイ 43a5-GGE9)2022/06/15(水) 19:32:37.12ID:JFwHiHWC0
a=郵便番号電話番号
b=Left(a,7)
c=Replace(a, Left(a, 7), "")

530デフォルトの名無しさん (ワッチョイ cfda-GGE9)2022/06/15(水) 19:34:39.87ID:8qf24aUq0
1000ならまだいける、10000だったら逃げるけどな

531デフォルトの名無しさん (ワッチョイ f368-zkCy)2022/06/15(水) 19:40:20.96ID:2pwDzYJj0
>>529
NG

532デフォルトの名無しさん (ワッチョイ ff7c-a420)2022/06/15(水) 19:56:19.48ID:y5599rfC0
ワークシートの背景をマップにしてセルクリックでイメージを表示するイベント書けば?

533デフォルトの名無しさん (ワッチョイ ffda-DKQR)2022/06/15(水) 19:57:21.42ID:TJhxNtAv0
昔ながらの紙の地図帳をイメージすればいいのか
最初のページで全体図をマッピングした概略図を掲げといて
詳細の判るまで拡大した一ページ(※)をマス目で区切って、縦に 1 2 3 横に A B C とか振り分けて
例えば B 4 とかをクリックしたら「設備名」の詳細を表示するとかか?

ユーザーフォームでそれぞれのマス目を呼び出すよりは、インデックスのSheetに全体図
そこをクリックで各Sheet (※)へジャンプとかのが楽そう  上が承認するかどうかだけど
上に承認してもらうようにサンプル作ってプレゼンしてもいいし

534デフォルトの名無しさん (スッップ Sd1f-UWq1)2022/06/15(水) 21:04:50.79ID:m3jNjkHdd
コントロールフォームの動的配置 & クラスモジュールでイベント起こすに一票
どうせどこかでイベント共通化の処理が入るだろうからスケーラビリティ確保のためにも

535デフォルトの名無しさん (ワッチョイ ff7c-a420)2022/06/15(水) 21:45:31.66ID:y5599rfC0
>>534
うぬ、それが一番だと思うけど何故にエクセルなのかと思ってしまう

536デフォルトの名無しさん (ワッチョイ 63da-Spad)2022/06/16(木) 01:45:48.79ID:s8B3FZ9N0
1000個のラベルと見せかけて、
実は1個だけラボルが混ざってるんじゃないだろうか。

537デフォルトの名無しさん (ワッチョイ 4363-b1tp)2022/06/16(木) 07:24:34.47ID:FKA1V1750
テキストファイルを開いて1行ずつ中身を読んでます。
Open ファイル名 For Input As fNo
Line Input fNo, buff
途中まで読んだあと、先頭から読み直したいです。
ファイルを閉じてまた開くのは嫌です!
下のURLを参考にして、
FileSystemObjectを使ってすべてを1変数に読み込み
改行コードで区切って配列化して
先頭から読み直したいときは配列の先頭から読みなおし
という方法を思いつきましたがコード修正が大変なので
もっと楽な方法をご教示いただけたら幸いです。
https://bokulog.org/vba-read-file/

538デフォルトの名無しさん (ワッチョイ 4363-b1tp)2022/06/16(木) 07:25:26.98ID:FKA1V1750
sageそこねスミマセン

539デフォルトの名無しさん (ワッチョイ ff7c-z1WN)2022/06/16(木) 08:10:36.64ID:fGEidPk00
>>529
1桁足りないじゃんって思ったら
Optionbaseデフォルト値でやるのが普通なのか?
俺はどうにも馴染めないので1でやってるが

540デフォルトの名無しさん (ラクッペペ MM7f-W/Na)2022/06/16(木) 08:12:48.83ID:H6wZRQj3M
>>537
vbaにseekってなかったっけ?

541デフォルトの名無しさん (スッップ Sd1f-/e9c)2022/06/16(木) 08:52:14.47ID:ijJBEomdd
どんなコード書いててそこからどんな手直しするかわからないのに回答のしようがないよね

542デフォルトの名無しさん (アウアウウー Sa67-IhGj)2022/06/16(木) 10:17:53.34ID:G3W4msQ6a
>>537
ファイルを閉じて開き直すのが祖谷な理由が書かれてませんので
嫌でもやればいいんじゃね

543デフォルトの名無しさん (ワッチョイ 038f-/e9c)2022/06/16(木) 10:35:38.36ID:OXzWqs7e0
IE終了したけど、今日の時点ではVBAからIE操作できた。いつまで保つか明示されてる?

544デフォルトの名無しさん (ワッチョイ 732f-TFwb)2022/06/16(木) 13:56:39.50ID:j/xQYS4f0
サポートしないだけで
PC内にIEがある限り
永久に使えるんじゃないか?

545デフォルトの名無しさん (ブーイモ MMff-G2Bj)2022/06/16(木) 14:04:02.85ID:9IfQq+aNM
そのうち深刻な脆弱性が見つかったらセキュリティソフトでウィルス扱いされるようになって、
IEコンポをロードした瞬間にウィルス警告が出るようになるだろうな

546デフォルトの名無しさん (ワッチョイ 1349-JPbs)2022/06/16(木) 14:55:49.33ID:TulzdQgt0
WannaCryのときMSはサポート外にパッチ出しちゃった前科あるからなあ
なんだかんだ面倒みそうでなあ

547デフォルトの名無しさん (ワッチョイ 335f-EDU2)2022/06/16(木) 19:55:32.69ID:g5Jzetu50
>>543
7年くらい大丈夫と見たような気がする

548デフォルトの名無しさん (スップ Sd1f-G2Bj)2022/06/16(木) 21:22:11.67ID:wccj32jkd
>>547
何の根拠もないな
危険な脆弱性が明日見つかったらそれで終わりだよ

549デフォルトの名無しさん (ワッチョイ ff7c-a420)2022/06/16(木) 23:09:10.84ID:BfseDl080
https://www.ka-net.org/blog/?p=13587
素直にedgeに対応したコンポーネント出してほしいなぁ

webapiからjsonを読み込むときにIEだけはいちいちダウンロード確認のポップアップが出て止まる挙動で苦しんだ記憶があるから嫌い

550デフォルトの名無しさん (ワッチョイ 732f-b1tp)2022/06/17(金) 02:08:51.88ID:qX3KJPna0
>>540
Seek命令あるけど、あれランダムかバイナリモード用だと思う
が、試したがシーケンシャルファイルでもバイト位置で指定できるな

551デフォルトの名無しさん (オッペケ Sr87-ZBFk)2022/06/17(金) 07:31:22.44ID:tno+JwDPr
>>547
エッジで互換モードする期間じゃない?

552デフォルトの名無しさん (スプッッ Sddf-GGE9)2022/06/17(金) 08:55:59.12ID:LpDNne3Kd
IEで終了したのは「アプリ」の「サポート」だけだぞ
IEオブジェクトはしばらく残すと明言してるから、マクロから使うのはまだ問題ない

けど、猶予期間の今のうちに社内ルールの変更など根回しはちゃんとやっとけよ

553デフォルトの名無しさん (スッップ Sd1f-UWq1)2022/06/17(金) 13:19:56.68ID:6WxlvkUPd
IEが非対応のサイトも増えてくるから対策出来るならした方が良いのはわかってる
が現状Selenium Webdriverが最適解のようでいちいちバージョン合わせるためにダウンロードしたり記述が変わったりすげー面倒

MSがどうにかしてくれると淡い期待をしたいが

554デフォルトの名無しさん (ワッチョイ b3da-jvzI)2022/06/18(土) 02:47:00.46ID:x1pEIMNT0
Edgeに限らず、新しくなって使いづらくなるのホント意味不明。
PC起動するとWindows11にしませんか?って言われるけど、もうお前なんか信用しとらんわ!

555デフォルトの名無しさん (ワッチョイ 9a4f-+QtH)2022/06/18(土) 06:12:14.25ID:tcSE7QQr0
まぁしょうがない
良かれ悪かれ何でも時代の変化で変わって行く
VBAは関係ないけどちょっと前にとあるシステムで
IE → EDGE の移行作業行ったよ
開発ツールは確かにIEの方がEDGEより
使いやすかったと思う。慣れだろうけどね。

556デフォルトの名無しさん (ワッチョイ b393-rgQ2)2022/06/18(土) 06:56:56.06ID:8iz4uO0y0
世の中がセキュリティに舵を取るようになったからね
楽観論じゃなりゆかない時代なんだから仕方がない

557デフォルトの名無しさん (ワッチョイ 57e6-Xzo3)2022/06/18(土) 08:20:33.50ID:7fgrQLBR0
セキュリティを理由に広告ゴリ押し
こうはなりたくないね

558デフォルトの名無しさん (ワントンキン MM8a-ctFn)2022/06/18(土) 10:08:00.88ID:SSs68PlgM
もうマイクロソフトの為に仕事するのやめませんか?

559デフォルトの名無しさん (アウアウウー Sa47-iAjv)2022/06/18(土) 10:08:32.00ID:Os2AgP5Ia
ieで取れなかった個人情報を集めてるからな

560デフォルトの名無しさん (ワッチョイ 17f6-vQ73)2022/06/18(土) 10:59:15.44ID:0BdDrqNN0
ExcelもIEも何年も使ってないわ
kneetじゃねーよ

561デフォルトの名無しさん (ブーイモ MMba-oPsP)2022/06/18(土) 11:55:08.82ID:+2kbSQo1M
VBAもそろそろかな

562デフォルトの名無しさん (スプッッ Sd92-sER5)2022/06/18(土) 13:40:01.62ID:T0WefD6fd
そう言われ続けて20年たった

563デフォルトの名無しさん (ワッチョイ 1ada-UbfJ)2022/06/18(土) 16:09:32.02ID:JcC1S0zs0
VBA無くなればこのスレも下火になるかもな。
パワークエリスレが活気出る

564デフォルトの名無しさん (ワッチョイ b7da-sER5)2022/06/18(土) 16:29:16.53ID:Es40ajdn0
PowerQueryは万能じゃない
VBAと比較するもんじゃない

565デフォルトの名無しさん (ブーイモ MM67-sER5)2022/06/18(土) 18:07:43.74ID:lnn1Xxq/M
PowerShellは万能だぞ
ExcelのワークシートもWEBブラウザも操作できる

566デフォルトの名無しさん (スッップ Sdba-Xghq)2022/06/18(土) 18:14:09.38ID:59smDk8ed
デフォのPS 5.1はクソだけどな
BOM付きUTF-8を要求したり権限厳しかったり

567デフォルトの名無しさん (ワッチョイ b3da-jvzI)2022/06/19(日) 01:44:47.25ID:7uc9nhCj0
万能かもしれんがVBSみたいな手軽さが無いのがな…

568デフォルトの名無しさん (ササクッテロレ Sp3b-+QtH)2022/06/19(日) 10:44:47.27ID:uZGRAEGZp
Power shellは
.Net Freamworkが入ってなければただのShellだもんな
なら素直にVSの類いれとけばいい

569デフォルトの名無しさん (ラクッペペ MMb6-Tnny)2022/06/19(日) 21:06:19.28ID:+DYD1D5ZM
Powershell 7は.NETと関係ない汎用のコマンドラインシェル
macOSやLinux向けの製品すら存在する

570デフォルトの名無しさん (スップ Sdba-oPsP)2022/06/19(日) 21:33:18.64ID:nfQGh1M+d
追加でWebからインストールしなきゃいけないPowerShell(6以降)に存在価値はない
それが許されるんならあえてPowerShellなんて使わずとももっと優れた選択肢がいくらでもある

571デフォルトの名無しさん (ブーイモ MM26-sER5)2022/06/19(日) 22:00:01.16ID:c6U60qvsM
Win11でもオプションなの?
うちいまだにWin10だからわからん

572デフォルトの名無しさん (スップ Sdba-oPsP)2022/06/20(月) 09:16:41.32ID:ZiXH0O+ed
win11でも入ってるのは5だけ
6以降はサポート期限がLTSでもリリースから2年しかないから、
仮にWindowsにプリインストールすると2年ごとにWindowsの更新で強制的にメジャーバージョンが上がって既存資産がぶっ壊れるリスクが生じる
だからどうしてもユーザーの自己責任で塩漬けにできる選択肢が必要で、Windowsの一部として扱うことが不可能なんだよ

573デフォルトの名無しさん (オッペケ Sr3b-QJpe)2022/06/21(火) 14:59:24.30ID:nrTPRY1Pr
質問です

574デフォルトの名無しさん (オッペケ Sr3b-QJpe)2022/06/21(火) 15:16:20.71ID:nrTPRY1Pr
質問です
ある動画で「連想配列とユーザー定義型を組み合わせると便利」ということで色々勉強していたのですが、ユーザー定義型ってpublic宣言しても別モジュールで呼び出せないですよね?
てことは別モジュールにプロシージャがあって、それを引数設定して呼び出してもエラーになりました
そこでクラスモジュールを使っても同じような事ができると聞き、クラスモジュール内に3つ型を宣言した変数を作ったのですが、それを配列に入れようとすると「配列に入れることができません」というエラーがでます
具体的には以下のとおりです
Dim c() as class1
Set c = New class1 ←ここでエラーがおきます
この記述を
Dim c() as New class1
とすればエラーは起きないのですが、別モジュールの引数に
sub test(c as New class1)と記述はできないので困っています
なにかいい方法はないでしょうか?

575デフォルトの名無しさん (オッペケ Sr3b-QJpe)2022/06/21(火) 16:23:50.93ID:NaTv3t2Wr
すみません
私の勘違いでした
普通にユーザー定義型でできました

576デフォルトの名無しさん (ワッチョイ b7da-sER5)2022/06/22(水) 00:02:57.35ID:fcQ3wVRo0
ネタ投下
「貴様は一体何を仰ってるんだ」Excelマクロの納品時、担当者に言われたひと言にTwitterざわつく - 「良さを完全に殺しに来てる」の声も
https://news.mynavi.jp/article/20220620-wadai6/

577デフォルトの名無しさん (スフッ Sdba-sER5)2022/06/22(水) 01:16:32.40ID:/230SSBOd
>>576
くだらなすぎる
読むのは時間の無駄

578デフォルトの名無しさん (ワッチョイ 1ada-UbfJ)2022/06/22(水) 02:03:36.70ID:/pBOMLc50
うさんくせー
セミナー屋ほど胡散臭いのはないわ、
やっぱ5ちゃんねるが一番!

579デフォルトの名無しさん (エアペラ SD3f-rgQ2)2022/06/22(水) 07:25:36.31ID:dKKatMvdD
嘘松藁人形
手作業大好きおじさんが一人いましたって面白くもない話

580デフォルトの名無しさん (ワッチョイ 9a01-ylO7)2022/06/22(水) 07:29:12.94ID:bFCzOkRx0
話の内容はともかく客に説教とかアホすぎる

581デフォルトの名無しさん (ワッチョイ b7da-sER5)2022/06/22(水) 09:39:47.61ID:fcQ3wVRo0
「ミスが起こるような仕組み」でなくて、
まるっきりブラックボックスでもなく、
人が過程を辿れるようなの、作りたいな・・・
とは思う。

582デフォルトの名無しさん (スップ Sdba-sER5)2022/06/22(水) 11:11:38.88ID:SHGr4jOjd
完全にネタ、作り話だろこれ

そもそもVBAごときでミスが起きないシステムなんて作るの不可能だし
マクロはたくさんある工程の一つに過ぎないんだから、業務全体で見ればミスが起きる余地なんてほかにいくらでもあるだろうに

583デフォルトの名無しさん (スップ Sd5a-KtZt)2022/06/22(水) 11:58:03.94ID:qNhhYbIzd
話題にするだけばからしいでしょ
こんなの言ったもん勝ちだしね

584デフォルトの名無しさん (ラクッペペ MMb6-Xzo3)2022/06/22(水) 12:09:22.34ID:PZ27NODvM
ブラックボックスでミスが見つけられない
を独自解釈しただけだろ

585デフォルトの名無しさん (ワッチョイ 1a7c-nLgy)2022/06/22(水) 13:02:01.70ID:acQQyPov0
>>581
どうせDebug.Printするんだろうからデバッグモード付きで納品すればいいんじゃね

586デフォルトの名無しさん (アウアウウー Sa47-iAjv)2022/06/22(水) 13:45:53.56ID:5jQGKRYma
マクロの作成頼まれたけど要求内容があまりにも怪しかったので、
マクロと一緒に「入力に対する出力が合っているか」と「そもそもの入力が誤っていないか」を簡易的に(電卓などで)求められる計算方法を渡した
そしたら約3ヶ月に一回ぐらいの割合でそもそもの入力すべきデータを誤っていたことが判明した
ってことはあったな
後で調べたら、こういうのは「封筒裏の計算」っていう手法らしいけど

587デフォルトの名無しさん (スップ Sd5a-KtZt)2022/06/22(水) 13:46:18.61ID:qNhhYbIzd
>>581
保存期間なり世代管理してログ出力すればいいでしょ

588デフォルトの名無しさん (ワッチョイ 1a7c-nLgy)2022/06/22(水) 15:52:29.00ID:acQQyPov0
>>586
祝儀袋の封筒に書かれた金額と入っている金が違うやんってことか
なるほど日本人はうまい例えを作るもんだと思ったら全然違ってた

589デフォルトの名無しさん (ワッチョイ 1ada-UbfJ)2022/06/22(水) 17:31:38.14ID:/pBOMLc50
わろた

590デフォルトの名無しさん (ワッチョイ 8a3d-dy1l)2022/06/22(水) 19:32:15.50ID:XefayqmG0
Excel2013のVBAで
Debug.Print (1 = 1) * 1
てやると-1になるけど、
セルで
=(1=1)*1
て入れると1になる。
これって不具合?

591デフォルトの名無しさん (ワッチョイ 3b5f-sER5)2022/06/22(水) 19:47:11.74ID:5Bb+Exnq0
ワークシート上の(1=1)、つまりTRUE値は「1」だけど
VBAでのTrue値は「-1」だから合ってる

592デフォルトの名無しさん (オイコラミネオ MM06-Q1wp)2022/06/22(水) 21:45:57.03ID:Io6qCa48M
>>576
毎日新聞の戯言

お前暇やろ

593デフォルトの名無しさん (ワッチョイ 1763-WaTF)2022/06/23(木) 00:03:21.37ID:RpD62pBf0
VBAは好き
どんな職場で働けばいいの?
正社員じゃなくていいです。

594デフォルトの名無しさん (ブーイモ MMba-S7oR)2022/06/23(木) 06:39:08.02ID:d1WC2qsrM
>>593
事務派遣。
ゆるい職場ならvba使用が禁止されて無いから与えられた業務で使って見ればいい。

595デフォルトの名無しさん (TW 0Hca-j7e5)2022/06/23(木) 06:45:25.15ID:ms1G02BaH
ワイまさに派遣事務でたまにVBAやってこちらのみなさんにお世話になってる(*´ε`*)

596デフォルトの名無しさん (スププ Sdba-Xghq)2022/06/23(木) 07:34:26.56ID:OFyvXiPXd
>>593

日本で働くのはやめておけ
将来性無いぞ

597デフォルトの名無しさん (ワッチョイ 1768-GvQ2)2022/06/23(木) 07:40:40.65ID:SBEKkY350
>>593
派遣おすすめ
vba縛りの事務なら、めちゃくちゃ楽で定時に帰れる
そういう人を見たことある

一生生きていけるだけの金もってたら、
そういう人生送りたかったってぐらいやりたい生き方だわ

598デフォルトの名無しさん (ワッチョイ 9ada-VVUE)2022/06/23(木) 09:00:02.54ID:KOp9wOBp0
生涯困らない金があって、VBAの事務作業か  もっと他に・・ いや、どうぞご自由にだけどさ

599デフォルトの名無しさん (ワッチョイ 1768-GvQ2)2022/06/23(木) 09:06:50.94ID:SBEKkY350
>>598
一時金持っててさ、毎日酒のんでゲームしてパッパラパーな人生送ってたのよ
当然、あっという間に体壊して病院行き

適度な仕事は、自分の健康につながるよ

600デフォルトの名無しさん (ワッチョイ b393-rgQ2)2022/06/23(木) 09:13:48.26ID:RH4NXyqT0
貧困な想像力って悲しいよね

601デフォルトの名無しさん (スッップ Sdba-KtZt)2022/06/23(木) 10:45:06.10ID:omFSpe9sd
VBAしかできないやりたくないような人だとしたらそのような人を使ってくれるところは少ないのでは・・・
なのでここで聞いてもいい回答はもらえないでしょ

602デフォルトの名無しさん (アウアウウー Sa47-vQ73)2022/06/23(木) 10:56:16.87ID:M4XLJX6ga
いまさらVBAには関わりたくないな
そもそもVBA自体よりもVBAを使ってる連中と関わりたくない

603デフォルトの名無しさん (アウアウウー Sa47-iAjv)2022/06/23(木) 12:20:08.77ID:QS7NhMN+a
安定のNHK

604デフォルトの名無しさん (ワッチョイ b614-I+Ib)2022/06/23(木) 12:41:27.99ID:8671gq8M0
なんでココにいるのか?
ってツッコミ入れたら負けなんかなw

605デフォルトの名無しさん (ワッチョイ 1ada-UbfJ)2022/06/23(木) 13:16:25.44ID:Qj8PYDZt0
ちがうでしょ、所謂かまってちゃんでしょ。
慰めてやるべき

606デフォルトの名無しさん (ブーイモ MMff-nLgy)2022/06/23(木) 13:34:30.38ID:iXtKw0QdM
プログラマからしたらVBAしか出来ないって使えないやつでしかないからなぁ

607デフォルトの名無しさん (ワッチョイ 1768-GvQ2)2022/06/23(木) 14:08:36.94ID:SBEKkY350
>>606
無知なのにテキトーに言い過ぎ

vbaは特殊で、保守がメインの現場ばかり。vba使えればそれでいい
立ち位置的にはCOBOLに近い

608デフォルトの名無しさん (ワッチョイ b393-rgQ2)2022/06/23(木) 14:41:25.25ID:RH4NXyqT0
>>607
世の中を知らなすぎ
どんどんVBAは消えていってる
MSすらVBAではなくPython導入しようとしてたが、
openpyxlやxlwingsの出来が良かったのでそれらを薦めてるんだよ
突然IEのサポートが終わるとか言ってる奴くらいだぞ知らないの

609デフォルトの名無しさん (ワッチョイ 1768-GvQ2)2022/06/23(木) 14:45:19.51ID:SBEKkY350
>>608

だから保守メインって言ってるじゃん
新規開発なんて無く基本的に別言語とは関わりがない

610デフォルトの名無しさん (スップ Sd5a-KtZt)2022/06/23(木) 14:51:02.16ID:9dA5CJ8Sd
そのツールでできるならどんなの選んでもいいだろ
>>608みたいなのはそんなこともわからず俺こんなの知ってるぜスゲーだろって言いたいだけのかまってちゃんだろ
VBAはそもそも基本的にWindowsPCなら入っているであろうExcelさえあれば
他に何も入れなくても使う事ができるという1点で他にはない優位性があるわけだし
職場によっては変なものを入れるのはNGみたいなところもあるんだから
そういう事も踏まえないでただ批判だけするのはおかしい話

611デフォルトの名無しさん (アウアウウー Sa47-vQ73)2022/06/23(木) 15:10:52.41ID:Ukh7Grgra
ほらな
やっぱりVBAだろ

612デフォルトの名無しさん (ワッチョイ b393-rgQ2)2022/06/23(木) 15:22:59.47ID:RH4NXyqT0
>>609
VBAからPythonへのリファクタリングが進んでるって話だよ
リファクタリングって新規開発ではなく保守なんだけど理解できないようだしなw
今後もVBA使っていくつもりなら、
VBAがやがてどうなるとか調べるのはかまってちゃん以外でも当然の行為だろ
ましてや仕事なら尚のこと

613デフォルトの名無しさん (ワッチョイ 1768-GvQ2)2022/06/23(木) 15:38:55.20ID:SBEKkY350
>>612
へぇ、それは知らなかったわ、物知りだな~
具体的にはどんな案件がvbaからpythonになってるの?

614デフォルトの名無しさん (ワッチョイ 1768-GvQ2)2022/06/23(木) 15:45:42.70ID:SBEKkY350
エクセル・accessの簡易的・汎用的な入力方法を全部捨てて、
pythonで作り直す案件とはどういうものなのだろうか?
概算するまでもなくものすごく高くなるんだけど、一体どういう案件だとコストダウンになるのだろう?
早く回答してほしいなぁ。まだかなぁ

615デフォルトの名無しさん (ワッチョイ b393-rgQ2)2022/06/23(木) 16:48:28.59ID:RH4NXyqT0
>>614
openpyxlやxlwingsって具体的な名前出してるのに調べたり理解できない奴が煽ってるのか
無知な上に調査も思考もできない役立たずがVBAだけで食っていくとか何の冗談だよ

616デフォルトの名無しさん (ワッチョイ 1ada-UbfJ)2022/06/23(木) 17:06:30.04ID:Qj8PYDZt0
VBAだけじゃなくて、Excelの一通りの知識も必要では?
事務員なら

617デフォルトの名無しさん (ワッチョイ 1768-GvQ2)2022/06/23(木) 17:13:43.84ID:SBEKkY350
>>615
おう見落としてたわサンキューな
勉強してくるわ

618デフォルトの名無しさん (アウアウウー Sa47-ylO7)2022/06/23(木) 19:20:48.18ID:xtvi5Qi8a
案件って言ってるのに
> openpyxlやxlwings
とか、アホ丸出しやんw

619デフォルトの名無しさん (ワッチョイ 1768-GvQ2)2022/06/23(木) 19:24:07.75ID:SBEKkY350
>>618
その単語だけで内容は伝わるよ

620デフォルトの名無しさん (オイコラミネオ MM73-Q1wp)2022/06/23(木) 19:41:27.49ID:T964c/cqM
派遣でvbaてアホすぎるだろ

621デフォルトの名無しさん (TW 0Hca-j7e5)2022/06/23(木) 19:50:50.76ID:YBqf9Go9H
>>620
なんで?>>595だけどVBAやらされることもあるんだけど、、
まあ大したものじゃないけどね(^_^;)ちなみに女です。

622デフォルトの名無しさん (ワッチョイ 9a01-ylO7)2022/06/23(木) 20:41:26.32ID:8GFyplgN0
>>619
内容説明してみ
まあ必死ではぐらかすんだろうけどw

623デフォルトの名無しさん (ワッチョイ 1768-GvQ2)2022/06/23(木) 20:48:49.23ID:SBEKkY350
>>622
これがあればvbaをpythonに置き換えるコストがクッソ下がる。案件は基本的に何にでも対応できる
なかったらめちゃくちゃなコストになるから非現実的だと思ってた

624デフォルトの名無しさん (ワッチョイ 9a01-ylO7)2022/06/23(木) 21:09:00.04ID:8GFyplgN0
>>623
> openpyxlやxlwings
の説明なんて要らんよ
> 具体的にはどんな案件がvbaからpythonになってるの?
の回答よろしく

625デフォルトの名無しさん (ワッチョイ 1768-GvQ2)2022/06/23(木) 21:25:01.78ID:SBEKkY350
>>624
知らんよ。俺は見たことない

どんな案件にでも対応できるからユーザー側がpythonを指定して発注することは少ないだろう
開発側の好みでpythonを選んでいるだけだろうな
webサーバーで処理するという点ではエクセル→スプレッドシートの移行にかなり近い。

626デフォルトの名無しさん (ワッチョイ 9a01-ylO7)2022/06/23(木) 21:39:08.37ID:8GFyplgN0
知らんのならいちいち絡んでくるなよ...
そもそもどんな内容が伝わると思ってたんだよw

627デフォルトの名無しさん (ワッチョイ 1768-GvQ2)2022/06/23(木) 21:55:24.01ID:SBEKkY350
何でも低コストで作れる以上、具体的な案件なんてもう必要ないだろう

628デフォルトの名無しさん (ワッチョイ 1ada-UbfJ)2022/06/23(木) 22:56:14.90ID:Qj8PYDZt0
会社の人事部の仲良い人に聞いたけど、派遣君でVBAできるヤツは希少な人材と言っていたぞ
ましてやExcel自体まともに操作できない派遣が多い中で。

629デフォルトの名無しさん (ワッチョイ 9a4f-+QtH)2022/06/24(金) 03:54:27.16ID:ctS3zPLY0
まぁ手広くやるかVBA極めるかだろうけどある程度は手広くやらないとね
「VBAは死ぬ」と言われてもう随分経つけど一向に死ぬ気配はないのは確かだけど
VBAしか出来ないとOfficeに乗っかったアプリしか開発出来ない井の中の蛙状態になるのも確か。

それに他言語やってるとその言語の考え方も取り入れてVBA作るようになるから何かひとつやるにしても取れる手段が増えるんだよね。

まぁ個人的にはPythonは下手に手をつけると算数しか出来ないバカな俺には数学出来ないといけないお仕事が降ってきそうでちょっと敬遠するけど。

後JAVAは個人的に肌に合わなかったのでやって良かったってなるのか分からないけど、
JavaScriptはWeb系やるならまず必須になるし、とりま後はC#辺りやっとけばいいんじゃないかと思う。

630デフォルトの名無しさん (ワッチョイ 9a4f-+QtH)2022/06/24(金) 04:14:34.15ID:ctS3zPLY0
後、このスレには俺みたいなジジイが結構いるみたいだから話しておくと、
遠い昔まだPCがマイコンとか呼ばれていた頃、すがやみつるって「ゲームセンターあらし」とかいう漫画描いてた人が「こんにちはマイコン」ってBASICでブロックの無いブロック崩しみたいなののプログラムを作る工程を漫画で説明しながら描いてたんだけど、
ちょっと前に「こんにちはPython 」って同じ感じの内容をPython でやってるのを出してたから話のネタに買ってもいいかも知れないよ。
ただ、新品買うほどの価値があるかは微妙だから中古でもいいと思うけど。

まぁスレ違いだからこの辺にしとくわ。

631デフォルトの名無しさん (ワッチョイ 4b02-WaTF)2022/06/24(金) 04:39:40.48ID:61TcLrsp0
activecellを使って掛け算をしたい時どうすればいいのか分かりません
教えていただけたら嬉しいです。
inputboxで数値を入力してその数値を使って計算したいです。計算する時にactivecellを使いたいです

632デフォルトの名無しさん (ワッチョイ 1768-GvQ2)2022/06/24(金) 07:42:23.66ID:24qb8CGk0
>>631
Sub foo()
Debug.Print ActiveCell.Value * InputBox("")
End Sub

633デフォルトの名無しさん (アウアウウー Sa47-vQ73)2022/06/24(金) 09:49:37.06ID:K2we1Lara
こういうのが尼崎事件を起こすんだろうな

634デフォルトの名無しさん (アウアウウー Sa47-iAjv)2022/06/24(金) 12:20:36.40ID:SlsiDUV+a
需要と供給

635デフォルトの名無しさん (ワッチョイ 1ada-UbfJ)2022/06/24(金) 15:06:54.11ID:kZFfj4TG0
難しい話ね。
これから他の言語も必要なら習得の必要あるしね。

636デフォルトの名無しさん (ワッチョイ 3b5f-8Usu)2022/06/24(金) 15:26:03.25ID:bvc+MoD20
VBA覚えるの大変ですね
理解してコピペできるくらいにはなりたい

637デフォルトの名無しさん (HK 0Hca-j7e5)2022/06/24(金) 15:31:46.16ID:RLAl6U0RH
一度VBAエキスパートとか取るくらい勉強すれば
毎回Offsetの横は行が先か列が先かどっちだったかな?って(Resizeでも同じことやってる)やってるワイでも
大体コピペで作れるくらいには成長するよw

638デフォルトの名無しさん (ワッチョイ 3b5f-8Usu)2022/06/24(金) 19:49:28.19ID:bvc+MoD20
>>637
ありがとう
やってみるか
参考書検討しようかな

639デフォルトの名無しさん (ワッチョイ da59-2kOI)2022/06/24(金) 20:26:28.92ID:oJCwQA/d0
コピペしたVBAってみんな捨てて去ってるのかな、貰ったことないかも。

640デフォルトの名無しさん (ワッチョイ 1ada-UbfJ)2022/06/24(金) 21:29:08.60ID:kZFfj4TG0
コピペはダメと教わったがな最初の会社で。
あちぃなしかし今日は

641デフォルトの名無しさん (ワッチョイ b668-GvQ2)2022/06/24(金) 21:34:54.88ID:p6zHePCT0
熱がこもって32度あるわ

642デフォルトの名無しさん (ワッチョイ b668-GvQ2)2022/06/24(金) 21:35:55.33ID:p6zHePCT0
コピペしてそのまま使うことはほぼなくなる
コンパクトにまとめないと、後で見て何書いてるかわからなくなる

643デフォルトの名無しさん (ワッチョイ da59-2kOI)2022/06/24(金) 23:00:17.91ID:oJCwQA/d0
ネットにうpしてあった100行のやつをコピペして100000行にしてる、コンパクトという発想がなかったわ。そもそも意味わかんない行もあるけど消すと動かないし。
後任に渡そうと思ったけど恥ずかしいからやめとくか...。
おまえら上級者なんだね。

644デフォルトの名無しさん (ワッチョイ 8a3d-dy1l)2022/06/24(金) 23:49:49.39ID:ueFhN9Vh0
VBAはコピペして動くからいいよな。
Pythonはだいたい動かない。
しかも、Pythonのページ作るやつて
断片的にソースを乗っけるから、なおさら動かない。

645デフォルトの名無しさん (オッペケ Sr3b-QJpe)2022/06/24(金) 23:54:16.48ID:WnxbT+0Sr
コピペして動かすのって怖くないか?
少ない量ならまだしも100行だと何が起きてもおかしくない

646デフォルトの名無しさん (ワッチョイ 3fda-eqyh)2022/06/25(土) 01:09:59.54ID:XeF3ZBAK0
それを修正できるスキルがあれば別かもだけど、なかなかいないのでは

647デフォルトの名無しさん (スププ Sd5f-J46v)2022/06/25(土) 08:29:17.86ID:hk0FSiYld
ネットソースだとwsの指定とか省略されててコピペじゃ怖くて使えたもんじゃない

648デフォルトの名無しさん (TW 0H9f-b1XO)2022/06/25(土) 09:09:54.09ID:HMw3/wS6H
自分で一から書ける能力があればわざわざコピーなんざしないのさ。。。(-_-)

切り貼りつぎはぎだらけで変数の宣言がぐちゃぐちゃになってる
分かってくれる人いないかな(笑)

649デフォルトの名無しさん (ワッチョイ 3fda-eqyh)2022/06/25(土) 09:43:24.30ID:XeF3ZBAK0
独創でコード書けないと保守で詰むでしょ。

650デフォルトの名無しさん (アウアウウー Sad3-n9/C)2022/06/25(土) 10:00:09.34ID:kapo/xgia
コピペが悪いのではなく、コピペで作ったコードを自分が提供した責任があるのだよ

651デフォルトの名無しさん (TW 0H9f-b1XO)2022/06/25(土) 10:15:11.28ID:HMw3/wS6H
>>649
自分だけで時間短縮のために使ってるマクロだからそんなに困らないよ

みんなに配布するレベルはこれからもしないと思う^^

652デフォルトの名無しさん (ワッチョイ 7f10-60CD)2022/06/25(土) 10:49:20.62ID:Wc9Qs34b0
>>648
分かるけど理解はしない
それを許したらそこでおしまい

653デフォルトの名無しさん (ワッチョイ 3f01-DrrO)2022/06/25(土) 10:54:34.90ID:PITDVbGU0
まあ自分で使うだけならいいんじゃね

654デフォルトの名無しさん (スッップ Sd5f-gXkX)2022/06/25(土) 12:26:01.77ID:W4jZJdCLd
書ける能力あっても今までに作ったコードをコピペするだろ?
場合によっては共通関数の入ったモジュール程度を持ってくるにしても
お前らもしかして同じこと1から書いてるの?

655デフォルトの名無しさん (オッペケ Sra3-RiBi)2022/06/25(土) 12:41:36.76ID:7YC4We+Er
別部署に行って、「規則が変わるからこのマクロも修正してくれ」って言われ、中を見てみたらセレクトメゾットやコピーメゾットが使われてた時の絶望感
「クリップボードの履歴を有効にしていると正常に作動しない事があるから必ず無効にしてくれ」ってそれ書き方おかしくないか?
そして変数の宣言が強制されていなくて更に絶望する

656デフォルトの名無しさん (ブーイモ MM5f-2lfq)2022/06/25(土) 12:56:07.50ID:Fu1pMYi/M
>>655のレベルもたぶん似たようなもんだよ

657デフォルトの名無しさん (ワッチョイ 3fda-eqyh)2022/06/25(土) 14:57:17.56ID:XeF3ZBAK0
>>654
と言うより、作って使用したらマクロは消しているのです。
再び必要になったら1から書いてますはい。
職場のローカルルールとして。

658デフォルトの名無しさん (ワッチョイ 3f7c-PGuA)2022/06/25(土) 17:13:39.41ID:ehcxDoIm0
>>657
ないわー
関数自体が使いまわし前提の考え方だし

659デフォルトの名無しさん (スププ Sd5f-J46v)2022/06/25(土) 17:43:12.02ID:hk0FSiYld
>>654
理解しないでコピペするか理解して書いたコードを使い回すかの差は途轍もなく大きい

660デフォルトの名無しさん (ワッチョイ 3fda-eqyh)2022/06/25(土) 18:56:11.02ID:XeF3ZBAK0
それどころか回りの奴らはVBAにしろExcelの学習すらやろうとしない。
仕事終わったら飲みに行く事しか考えていない。休日も何も努力しない現実。
興味ないヤツには進めてもダメなのかな

661デフォルトの名無しさん (ブーイモ MM53-2lfq)2022/06/25(土) 19:21:59.19ID:WbawSRHfM
VBA使いに向上心を求めるのは酷でしょ
それがないからこそVBA止まりなのに

662デフォルトの名無しさん (ワッチョイ 8f01-RiBi)2022/06/25(土) 21:29:35.48ID:Ujo38STt0
>>660
自分が使うのは勝手にしろだけど、それで優越感に浸って「周りの奴らは~」とかキモすぎだろ
たかが仕事で使うの1つのツールごとき にここまでイキれるのはヤバいわ

663デフォルトの名無しさん (ワッチョイ 3f42-H0HQ)2022/06/25(土) 21:31:08.83ID:tv1Cabyi0
他はすべて負けてるから何か一つでも勝てるものがほしいんや

664デフォルトの名無しさん (ワッチョイ ff68-TsA2)2022/06/25(土) 21:32:27.25ID:xn3lQ0RO0
レスバで勝てば世界ランクあがるしな

665デフォルトの名無しさん (ワッチョイ 3f59-ShbF)2022/06/25(土) 21:44:09.88ID:VazVwqbS0
>>647
それってコピペしただけじゃ動かないってことよね?
動くように自分で指定すると思うんだけど、こわいってのはどういう事なんだぜ?

666デフォルトの名無しさん (ワッチョイ 7fda-tCSL)2022/06/25(土) 21:53:20.34ID:Of9vbGQH0
>>663
負けの数ではお前が一番だ

667デフォルトの名無しさん (ワッチョイ 3fda-eqyh)2022/06/25(土) 22:26:51.85ID:XeF3ZBAK0
勝利するかために複雑な知識や技術を身につけているのだが??
間違ってる?

668デフォルトの名無しさん (スププ Sd5f-J46v)2022/06/25(土) 22:29:13.51ID:hk0FSiYld
>>665
wsを指定しないとActiveSheetで動こうとするから誤作動の原になる

669デフォルトの名無しさん (ワッチョイ 0fda-II3Z)2022/06/26(日) 00:40:58.82ID:NOZ7SEa20
Webbrowserで証明書を自動選択する方法は無いものでしょうか?

670デフォルトの名無しさん (オッペケ Sra3-RiBi)2022/06/26(日) 00:44:34.36ID:NC1QoP++r
>>667
誰に勝利するの?
何に勝利するの?

671デフォルトの名無しさん (ワッチョイ 3f4f-60CD)2022/06/26(日) 07:38:11.30ID:5vPg/0Rp0
他言語やったからって
excelやVBAでやったことが無駄になることはないよ
他の言語で作ったもののUTのエビデンスをとるのに
excelがもし無ければと思うとゾッとするし
テストデータ作成にもVBA使うととっても便利な場合が多いし

672デフォルトの名無しさん (ワッチョイ 8f63-BYhf)2022/06/26(日) 09:43:13.22ID:/e5N//9v0
エクセルのある列に数字が入ってます。
そのエクセルと同じ階層にあるフォルダの下に
上記の数字から始まる名前のフォルダがあります。
(数字のあとに日本語が付いてます)
このフォルダの探し方を教えていただきたく

673デフォルトの名無しさん (ワッチョイ 0f63-BYhf)2022/06/26(日) 09:45:37.60ID:Xa6L6yDT0
会社のパソコンでVBAを使って
pdfをテキストへ変換しています。
(com.adobe.acrobat.plain-text)
変換処理は不安定でエラーが出ることが多いが
成功することが多いです。
しかし有料ライセンスは一切買ってもらっていません。
これはライセンス違反ですよね??
違反ならもうやめます。

674デフォルトの名無しさん (ブーイモ MM5f-c/Mv)2022/06/26(日) 09:56:38.78ID:IFq6Yt8DM
>>672
num=cells(行,列).value
dirname=dir(thisworkbook.path&"\"&num&"*",vbDirectory)

675デフォルトの名無しさん (ブーイモ MM5f-c/Mv)2022/06/26(日) 09:59:07.88ID:IFq6Yt8DM
dirname=dir(thisworkbook.path & "\" & num & "*", vbDirectory)

676デフォルトの名無しさん (ワッチョイ 4fda-tCSL)2022/06/26(日) 10:18:26.90ID:6drPPg2U0
>>673
PowerQueryでもAdobeのAcrobatなしで
pdfをある程度変換出来るけど?

677デフォルトの名無しさん (ワッチョイ 3f01-DrrO)2022/06/26(日) 10:25:43.07ID:yfX3wl/l0
>>673
adobeに聞けとしか

678デフォルトの名無しさん (ワッチョイ 0f93-+tXk)2022/06/26(日) 11:39:03.04ID:XMcnD9d40
EULA読んでダメって書かれてなきゃいいだろ

679デフォルトの名無しさん (ワッチョイ 4f0e-6kVq)2022/06/26(日) 12:11:58.60ID:hFDBYOe90
クラスが入ってるCollectionの要素を置き換えるにはどうすればよいでしょうか?

Set col(2)=New MyClass()

とやってもできないんです。

680デフォルトの名無しさん (ワッチョイ cf49-+fV4)2022/06/26(日) 12:23:08.37ID:tixRR40Y0
置き換えはダメだからRemoveしてAdd

681デフォルトの名無しさん (ワッチョイ 4f0e-6kVq)2022/06/26(日) 13:30:17.16ID:hFDBYOe90
>>680
そうですか
ありがとうございます

でもなぜ置き換えできないのでしょう?
そのしくみを理解したいのですが
スキルがあがるステップだと思うので

682デフォルトの名無しさん (オッペケ Sra3-zdXj)2022/06/26(日) 13:35:51.31ID:VKkh0pnir
IEの入力欄に値いれるマクロ使ってたんだけど、エッジに移行して動かなくなったんよ
エッジの入力欄いじる方法ってご存知ないですか?
調べてもよくわからなくて

683デフォルトの名無しさん (スッププ Sd5f-2lfq)2022/06/26(日) 13:39:54.64ID:PhXCrOZEd
VBAを投げ捨ててEdgeの拡張機能を作ろう

684デフォルトの名無しさん (スフッ Sd5f-tCSL)2022/06/26(日) 14:11:21.83ID:1bCfGQVkd
Sendkeys

685デフォルトの名無しさん (スププ Sd5f-J46v)2022/06/26(日) 15:05:50.62ID:WjaufMigd
まだInternetExplorer.Application は有効でしょ
サポートは切れたが動かなくなる訳ない

686デフォルトの名無しさん (ワッチョイ 4f0e-6kVq)2022/06/26(日) 15:26:20.76ID:hFDBYOe90
なぜMsedge.Applicationにしないの?

687デフォルトの名無しさん (ワッチョイ 4f0e-6kVq)2022/06/26(日) 15:32:17.63ID:hFDBYOe90
クラス(例:MyClass)が入ってるCollectionの要素(つまりMyClass)をある条件でsortしたいのですが
簡単な方法はないのですよね?
これは標準モジュールにそのソート用のsubかfunctionを書くのが一般的ですか?
「ある条件」というのが複数あるので、複数個それを作るのが面倒。
あといま思い付いたけど、そのCollectionをメンバとして含む親クラスをつくり、その親クラスにその複数のsortに相当するfunctionを作るのがカッコイイです?

688デフォルトの名無しさん (スププ Sd5f-J46v)2022/06/26(日) 18:21:23.39ID:WjaufMigd
たぶん用途的にArrayListが良いと思う
>>687

689デフォルトの名無しさん (ワッチョイ 3f3d-9oGY)2022/06/26(日) 21:43:05.30ID:h799Melv0
VBAのマクロ名てなにか制限ある?
Sub n98()
MsgBox "a"
End Sub
というマクロを作ったんだが、実行できない。実行ボタンがグレーアウトする。
しかも、マクロボタンを押すとセルカーソルが彼方に飛ばされるんだが。

690デフォルトの名無しさん (HK 0H9f-b1XO)2022/06/26(日) 22:29:47.48ID:UUS+pyK9H
>>689
ワイはそのコードコピペしたらちゃんと動いたよ
モジュールのコード上でF5キー押してみたら?

691デフォルトの名無しさん (HK 0H9f-b1XO)2022/06/26(日) 22:31:36.52ID:UUS+pyK9H
マクロ名の制限ももちろんあるよ
ググればすぐ出てくるはず

だけどこのコードのマクロ名は問題無い

692デフォルトの名無しさん (ワッチョイ 3f3d-9oGY)2022/06/26(日) 22:39:05.59ID:h799Melv0
>>690
VBEでF5なら動くが、
エクセル本体で開発タブのマクロボタン押すとああなる。
ちなみにバージョンは2013。
マクロ名が英字2字+数字だと、マクロボタン押すとそのアドレスのセルに飛ばされるな。
もちろんマクロは実行できない。
そんな制限あったけ?
セルのアドレスて「予約語」になるのか?

693デフォルトの名無しさん (ワッチョイ ff8c-1MFK)2022/06/26(日) 23:12:48.18ID:47IFcp1V0
>>689
excel2010だけど全く同じ現象が起こるわ
F5からじゃくてAlt+F8な

694デフォルトの名無しさん (ワッチョイ ff68-TsA2)2022/06/26(日) 23:30:30.80ID:CNfWwh200
この画面開いたらn98セルに行って勝手に選択(コピー?)してくれる
Excel VBA 質問スレ Part76 YouTube動画>3本 ->画像>10枚

逆に、alt+f8でマクロを開いた状態でセル選択するとテキストボックスに反映されるので、
ここは参照かなにかで連動してるっぽい
Excel VBA 質問スレ Part76 YouTube動画>3本 ->画像>10枚

695デフォルトの名無しさん (オッペケ Sra3-oI2n)2022/06/27(月) 07:11:11.91ID:KEClHONvr
>>694
予約語とかセル番地名、数字始まりは駄目

696デフォルトの名無しさん (HK 0H9f-b1XO)2022/06/27(月) 07:18:40.52ID:pJh/2YwLH
>>695
セル番地もダメだったのか、ウソついてごめんなさい

697デフォルトの名無しさん (スププ Sd5f-J46v)2022/06/27(月) 07:20:43.06ID:kD2T1aicd
セル番地名ってダメだったのか

698デフォルトの名無しさん (ワッチョイ 4f0e-6kVq)2022/06/27(月) 07:28:39.14ID:JHJu1s6G0
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などのように単純ではなくてもっと複雑怪奇で長い文字列です。

699デフォルトの名無しさん (エアペラ SD5f-+tXk)2022/06/27(月) 07:42:09.30ID:/YUVVdlZD
インデント揃えてれば良いんじゃない?
それかある程度深くなったら別ルーチンや関数に飛ばすとか

700デフォルトの名無しさん (ワッチョイ 7fdb-zdXj)2022/06/27(月) 07:44:02.36ID:cx09ANOo0
if a=1 and b=1 and c=1
にすればすっきり

701デフォルトの名無しさん (スプッッ Sdbf-tCSL)2022/06/27(月) 08:00:18.06ID:qwmHCu1Hd
>>700
VBAはショートサーキットじゃないから遅くなる

702デフォルトの名無しさん (ワッチョイ 3f01-DrrO)2022/06/27(月) 08:05:04.58ID:3L19Fpz+0
>>695
それどこかに書いてある?
まあ予約語や数字始まりがダメなのはわかるけどセルアドレスは盲点だわ

703デフォルトの名無しさん (スップ Sddf-gXkX)2022/06/27(月) 09:20:29.88ID:WYWqaC3Yd
>>698
何がしたくてそのIF文を書いてるかわからないけどELSEに対しての記述がなければ>>700みたいな書き方にしてもいいけど
自分はその程度のネストは許容範囲だけどね
それとなんでしないほうがいいと思ったかも書くと他の回答もらえるかもね

704デフォルトの名無しさん (ワッチョイ ff68-TsA2)2022/06/27(月) 09:26:36.50ID:iDqL/u9w0
年取ると4階層なんかもう見たくない

705デフォルトの名無しさん (スプッッ Sdbf-tCSL)2022/06/27(月) 09:27:26.36ID:HPVEPi/ad
Excel2021でも再現したわ
セル番地はモジュール名にできないのか、知らんかった

捨て変数とか作業ファイル名なんか普通にaaa1とか使ってるから、いつひっかかってもおかしくなかったのに
思い返してみると、なぜか捨てSubはtest1とかmacro1にしてた

706デフォルトの名無しさん (ワッチョイ ff68-TsA2)2022/06/27(月) 09:31:15.07ID:iDqL/u9w0
今わかってる範囲では、モジュール名にできるけど挙動が少しおかしくなる
避けられるなら避けたほうが無難だろうね

707デフォルトの名無しさん (スップ Sd5f-tCSL)2022/06/27(月) 09:34:13.54ID:Kt0Hv+oPd
>>692
英字1文字でも3文字でも飛ばされる
なんかの裏技に使えそうな気がする
遠くのセル範囲をちょっと確認したいとか

708デフォルトの名無しさん (ワッチョイ 8f5f-tCSL)2022/06/27(月) 09:36:09.63ID:kVADuAyl0
>>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

709デフォルトの名無しさん (スップ Sddf-gXkX)2022/06/27(月) 09:50:33.84ID:WYWqaC3Yd
>>708
自分としてはもともとの判定を変更するような回答はどうかと思ったりするんだよね
複雑怪奇とかいてるのでわかりやすい回答なら「if not (a = 1) then」にしたほうがいいのではないかと
それとそこまで書いたらcの判定もcontinueで飛ばしたほうがすっきりするかと

710デフォルトの名無しさん (ワッチョイ 0f7c-+tXk)2022/06/27(月) 09:53:16.46ID:H4LNDdnJ0
>>707
マクロじゃなくてジャンプでいいってなるんじゃ

711デフォルトの名無しさん (アウアウウー Sad3-n9/C)2022/06/27(月) 10:00:09.47ID:Do3p35pda
>>698
内容がわかるようにコメントつければいいんじゃね

712デフォルトの名無しさん (ワッチョイ 3f01-DrrO)2022/06/27(月) 10:15:26.20ID:3L19Fpz+0
>>705-706
モジュール名にはできないけど>>694のは手続き名だからモジュール名で修飾(※)すれば呼び出せるよ
※ マクロ名の欄に直接 Module1.n98 のように入力する

713デフォルトの名無しさん (ワッチョイ ff68-TsA2)2022/06/27(月) 10:19:02.79ID:iDqL/u9w0
>>712
スマン、勘違いしてた

714デフォルトの名無しさん (ワッチョイ 3f01-DrrO)2022/06/27(月) 10:24:13.47ID:3L19Fpz+0
>>698
一般論としてネストは浅い方が理解しやすいからそのコードであれば>>700>>708みたいにした方が読み易い
ただ>>701が言うようにVBAにはショートサーキット(短絡評価)がないので遅くなるのはいいとしても
If N <= UBound(A) And A(N) = 1 Then ...
みたいなのは
If N <= UBound(A) Then
If A(N) = 1 Then ...
のようにする必要がある

715デフォルトの名無しさん (ワッチョイ 8f5f-tCSL)2022/06/27(月) 10:29:53.48ID:kVADuAyl0
まあ、複雑な判定するならメソッドに切り出すのが間違いないわな
VBEだとIDEのサポートないから若干めんどくさいけど

716デフォルトの名無しさん (ワッチョイ 7fe3-n9/C)2022/06/27(月) 11:00:14.42ID:tRNW+/P90
>>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
みたいな書き方もある

717デフォルトの名無しさん (ワッチョイ 7fe3-n9/C)2022/06/27(月) 11:01:13.33ID:tRNW+/P90
最後の行間違えた
Loop Until 1: Next

718デフォルトの名無しさん (アウアウウー Sad3-0NSx)2022/06/27(月) 11:05:37.12ID:zkyvRAcfa
あんまりにもネストするなら、判定文(if複数)だけ別プロシージャ(Function)として外出しして、TrueかFalseを返させるようにするかな
IsGoukaku みたいなプロシージャ名にすると何したいかがわかってメンテ楽だし

719デフォルトの名無しさん (ワッチョイ 3f3d-9oGY)2022/06/27(月) 11:29:16.42ID:gUdOjGv30
セル番地がダメならダメでいいけど、あんな挙動をするのはバグだよ。
本来はメッセージだして弾くべきじゃね?
office365でも同じならだれかMSにチクってみてくれ。
以前、MSの掲示板にWinの不具合を書いたら、
速攻で消されたが、
こっちでも確認できたから開発にレポしといたていうメールが来て感動したわ。

720デフォルトの名無しさん (ワッチョイ ff68-TsA2)2022/06/27(月) 11:31:14.56ID:iDqL/u9w0
>>719
365でも同じだよ

721デフォルトの名無しさん (ワッチョイ 3f3d-9oGY)2022/06/27(月) 11:34:53.87ID:gUdOjGv30
>>700
if a=1 and b=1 and c=1
にすると内部では判断を3回することになる。

if a=1 then
if b=1 then
if c=1 then
にすると判断は少なくなるのだから、ネストするほうが正解じゃね?
もちろん、ifを書く順番は判定が少なくするようにする必要はあるが。

722デフォルトの名無しさん (オッペケ Sra3-5iuk)2022/06/27(月) 11:48:23.44ID:Fr547gX6r
>>719
ゆうてVBAとかアプデすんの?

723デフォルトの名無しさん (ワッチョイ ff68-TsA2)2022/06/27(月) 11:52:04.31ID:iDqL/u9w0
してるよ

724デフォルトの名無しさん (ワッチョイ cf49-5iuk)2022/06/27(月) 11:52:52.11ID:nfvw1vkN0
セキュリティ以外で?

725デフォルトの名無しさん (ワッチョイ ff68-TsA2)2022/06/27(月) 11:57:18.86ID:iDqL/u9w0
うん

726デフォルトの名無しさん (ワッチョイ ff68-TsA2)2022/06/27(月) 11:59:27.42ID:iDqL/u9w0
頻度はwindoewsやエクセルに比べたらかなり低いけど、やってるよ
確かちょっとずつ便利になってる。本当にちょっとだけ。関数が増えたりはしていないはず。
ソース探したけど見つからねぇ

727デフォルトの名無しさん (ワッチョイ cf49-5iuk)2022/06/27(月) 12:02:08.29ID:nfvw1vkN0
ふーん。。
まあ元号はあったね。。
古臭いよね。。

728デフォルトの名無しさん (ワッチョイ cf49-tCSL)2022/06/27(月) 12:04:52.44ID:nfvw1vkN0

729デフォルトの名無しさん (スフッ Sd5f-J46v)2022/06/27(月) 13:50:25.11ID:FDoLWwM/d
>>718
俺も大体これでやってる

730デフォルトの名無しさん (ワッチョイ 4f5f-BW8P)2022/06/27(月) 19:05:07.99ID:IOT9Z53O0
>>698
そもそもi使ってねーじゃん

731デフォルトの名無しさん (ワッチョイ ff02-tQxS)2022/06/27(月) 19:57:12.47ID:UdQiWAN30
どなたか教えてください。

売掛金消し込みのマクロを作成しています。VBAでソルバーを自動化したいと思っています。

目的セル、制約条件の参照セルの開始行が40行ごとに下がっていき、指定値は数値ではなく、セルを指定したいです。

とりあえず、全部の変数をvariant型にしてますが、なかなか上手くいきません。

732デフォルトの名無しさん (ワッチョイ ff02-tQxS)2022/06/27(月) 20:18:45.52ID:UdQiWAN30
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

733デフォルトの名無しさん (ワッチョイ 0f01-zdXj)2022/06/27(月) 20:22:23.17ID:jYXkLZ/o0
で、何がうまくいかないの?

734デフォルトの名無しさん (ワッチョイ ff02-tQxS)2022/06/27(月) 20:26:50.30ID:UdQiWAN30
>>733

ソルバーを実行しても、目的セルが0のままで指定値にと一致する金額の組み合わせが見つかりません。

どの請求分の入金なのか、突合したいです。

735デフォルトの名無しさん (アウアウウー Sad3-0NSx)2022/06/27(月) 20:35:36.69ID:9IVJ+eiIa
>>734
ソルバーわからんから確認させてください
振込1って変数は配列に入れた値を指定したいものですか?それともセル自体を指定したいものですか?
前者であればそれでいいですが、後者なら変数はRange型にする上で代入時に
Set 振込1 =〇〇
としないといけませんが…

736デフォルトの名無しさん (ワッチョイ ff02-tQxS)2022/06/27(月) 20:37:19.75ID:UdQiWAN30
連投すみません。

変数宣言して、for〜next構文でe列を("e"&i+40)や、n列も("n"&i+40)みたいにしたいんです。

d列には請求金額、e列は空白、目的セルにはsumproduct関数が入ってます。

指定値セルはn2:n8で、それぞれ違う金額が入力されてます。入金額とn2:n8内の金額が一致する組み合わせの請求金額をVBAを使って、求めたいです。

737デフォルトの名無しさん (ワッチョイ ff02-tQxS)2022/06/27(月) 20:39:44.13ID:UdQiWAN30
>>735

ありがとうございます。
ヘルプを確認したら、指定値はバリアント型で書けとあったので、なんとなくvariantにしていました。

738デフォルトの名無しさん (スプッッ Sd5f-h9lZ)2022/06/27(月) 20:45:55.27ID:qw9z/asOd
>>737
マルチ死ね

739デフォルトの名無しさん (ワッチョイ 0f01-zdXj)2022/06/27(月) 20:58:49.57ID:jYXkLZ/o0
とりあえず、rangeで回すんじゃなくてcellsで回したら?
n列はcells(i,14)
e列はcells(i,5)で

740デフォルトの名無しさん (ワッチョイ ff02-tQxS)2022/06/27(月) 21:09:33.28ID:UdQiWAN30
>>739
sub または functionが定義されませんエラーが出ます…

741デフォルトの名無しさん (ワッチョイ ff02-tQxS)2022/06/27(月) 21:10:43.06ID:UdQiWAN30
>>739

cellsも以前試したんですが、上手いこといきませんでした

742デフォルトの名無しさん (ワントンキン MM0f-5jmv)2022/06/27(月) 23:45:06.09ID:8dHt2RWvM
こんな奴が作るプログラムで金勘定とか笑えるわ
己を知らないって馬鹿の特徴なんだよな

743デフォルトの名無しさん (スフッ Sd5f-J46v)2022/06/28(火) 00:04:39.14ID:41/DPGawd
ソルバーってカタカナで書くの余計分からないよ
素直にSolverで良いだろうに

上の困ってるのは一旦マクロの記録で動作確認お薦め

744デフォルトの名無しさん (ワッチョイ 3f7c-PGuA)2022/06/28(火) 00:07:49.75ID:bUNh/khy0
>>742
2行目はよく解る www

745デフォルトの名無しさん (ワッチョイ 7fda-n9/C)2022/06/28(火) 05:51:37.94ID:kKObdKOQ0
オレオレ詐欺の手伝い?

746デフォルトの名無しさん (アウアウウー Sad3-n9/C)2022/06/28(火) 07:36:23.45ID:XbsSoqMza
>>736
なんで会計ソフト使わないの?

747デフォルトの名無しさん (ワッチョイ 3fda-eqyh)2022/06/28(火) 07:54:25.17ID:2SIMEAUf0
Excelは万能ではないから会計ソフトでやるべき事柄

748デフォルトの名無しさん (ワッチョイ ff68-TsA2)2022/06/28(火) 08:48:25.11ID:8yuWSL180
この世で最高のコードを見かけた

With Range("F27:F56")
.Value = .Value
End With

749デフォルトの名無しさん (ワッチョイ 3f4f-60CD)2022/06/28(火) 09:10:04.94ID:3ZxXgE6I0
>>748
それの意味解る?
ちょっと前に同じ様なコード載せてた人いたけど
複数範囲は一度に設定できないって嘆いていたよ

750デフォルトの名無しさん (ワッチョイ cfda-f2JP)2022/06/28(火) 09:10:36.27ID:a//tJk240
>>732
solverを使うときのパラメーターの設定の方法が間違ってんじゃない。多分値渡しではなくsetを使うと思うよ。
まずマクロの記録もう使ってなんでもいいからsolverで問題を解いてみて、solverを使うときの正しいVBA の書き方を確認しなさい。

751デフォルトの名無しさん (アウアウクー MMa3-NnnC)2022/06/28(火) 09:52:29.46ID:qOxYqvDuM
>>698
Ifなんたらかんたらを使わないで
B2になんか文字が入っていたらC2を
B3になんか文字が入っていたらC3を…

をスマートに書くならどう書きます?

Excel VBA 質問スレ Part76 YouTube動画>3本 ->画像>10枚

752デフォルトの名無しさん (スップ Sddf-gXkX)2022/06/28(火) 11:02:29.10ID:1UWi0IGcd
>>751
こんな質問してマウントとりたいんだろうか・・・
こんな質問するならそのスマートな回答も書いておけばいいのに

753デフォルトの名無しさん (ワッチョイ 3f42-H0HQ)2022/06/28(火) 11:15:10.25ID:cqDrGvOU0
VBA使わなくてもセルに関数書いときゃいいんじゃね

754デフォルトの名無しさん (アウアウクー MMa3-4pPN)2022/06/28(火) 12:14:32.96ID:S7aFTH1NM
>>751
お前Access VBAスレにExcelの質問書き込みするんじゃねーよ
迷惑だ

755デフォルトの名無しさん (ワッチョイ 8f21-tCSL)2022/06/28(火) 17:20:05.57ID:mlWlUbMB0
すみません、神様達、教えてください

エクセルVBAでは
関数内関数はどうやって作れますか?
また複数の関数を目的別に整理する方法として
パッケージやモジュール単位にまとめたり
マップに収納したりはできるのでしょうか?

756デフォルトの名無しさん (ラクッペペ MM4f-f2JP)2022/06/28(火) 17:52:33.73ID:fjXXNeRNM
>>755
できる

vbeエディタウインドウを凝視しているとやり方が判るはず

757デフォルトの名無しさん (ワッチョイ ff68-TsA2)2022/06/28(火) 17:59:52.62ID:8yuWSL180
>>756
具体的にやり方を教えてあげなよ

758デフォルトの名無しさん (オッペケ Sra3-RiBi)2022/06/28(火) 18:51:45.14ID:gpLDnVSMr
>>755
関数内関数ってこれのこと?
https://www.sejuku.net/blog/28904

759デフォルトの名無しさん (JP 0Ha3-tCSL)2022/06/28(火) 19:15:28.84ID:+0CREnk7H
>>756
ちょっと凝視してみます

>>758
疑似コードですけど例えば、
Function out()
 Function in1()
 End Function
Dim a=Function in2()
End Function
out=Array(in1,a)
End Function

みたいな感じで
関数outの中に関数in1を宣言したり
変数に関数を代入して、returnしたりしたいのです

760デフォルトの名無しさん (ワッチョイ 8f5f-tCSL)2022/06/28(火) 19:22:25.73ID:EFCYXnQm0
ローカル関数もサポートされてないし
関数をオブジェクトとして扱えないので変数への代入も無理です

761デフォルトの名無しさん (JP 0Ha3-tCSL)2022/06/28(火) 19:22:27.90ID:+0CREnk7H
>>756
標準モジュール単位で関数をまとめればいいってことでしょうか?

762デフォルトの名無しさん (JP 0Ha3-tCSL)2022/06/28(火) 19:29:24.91ID:+0CREnk7H
>>760
ありがとうございます
なるほどです
すっきりしました、神様ありがとう

モジュールを使いながら関数を整理するか
関数用にファイルを作って管理するかします

763デフォルトの名無しさん (ワッチョイ cfda-f2JP)2022/06/28(火) 20:14:33.61ID:a//tJk240
>>761
正解です

764デフォルトの名無しさん (ワッチョイ cfda-f2JP)2022/06/28(火) 20:14:53.99ID:a//tJk240
それからモジュールには適当に名前を付けることができますので

765デフォルトの名無しさん (ワッチョイ ff68-TsA2)2022/06/28(火) 20:17:06.37ID:8yuWSL180
関数内関数ってのは、関数の中で定義する関数のこと
phpだと

sub foo1
if a = b then

 sub foo2
  foo2=1
 end sub

else if

 sub foo2
  foo2=2
 end sub

end sub

みたいなことができる
あんまやらんけど

766デフォルトの名無しさん (ワッチョイ cfda-f2JP)2022/06/28(火) 20:22:34.06ID:a//tJk240
>>759
関数内関数をそこで書いているようなやり方ではできないけれど、どうしてもやりたければ vbe オブジェクトを定義してそこにコードを書き込むという疑似なやり方はできる。あるいはコードを作成するプロシージャを作成してそのプロシージャを呼び出して引数を渡してコード作った後、そのコードを呼び出すみたいなことはできるのかもしれない。
コードを実行中に別のコードを作成するという経験がないんでエラーが出るかどうかは分からない。

ただ面倒だし見通しも悪くなるんで外側で関数を定義した方が簡単だと思うんだけれどなぜ関数の中で関数を定義したいのでしょうか。

767デフォルトの名無しさん (JP 0Ha3-tCSL)2022/06/28(火) 20:32:39.05ID:+0CREnk7H
>>766
ありがとうございます
vbaがエクセル前提の言語と考えると
私が考えているような関数は使うべきでもないのだなって思いました

神様たちのアドバイスに感謝です
ありがとうございました

768デフォルトの名無しさん (JP 0Ha3-tCSL)2022/06/28(火) 20:42:12.06ID:+0CREnk7H
>>765
ありがとうございます

769デフォルトの名無しさん (JP 0Ha3-tCSL)2022/06/28(火) 20:50:26.07ID:+0CREnk7H
>>766
なぜ関数の中で関数を定義したいのか

すべての関数を同列に記載すると見通しが悪い気がして
例えば数式に関するものなら、calcurationでまとめ
出力に関するものなら、printでまとめ
保存に関するものなら、saveでまとめ
っていうように、目的別、機能別、階層別に関数をまとめると
後で見直したときに分かりやすいかなって

さらにfacadeみたいに間口を作れば
拡張も修正もしやすいかなって思いまして

770デフォルトの名無しさん (ワッチョイ ff68-TsA2)2022/06/28(火) 20:56:44.33ID:8yuWSL180
>>755
>関数内関数はどうやって作れますか?
関数内関数はない
classは貧弱だけど、ある
ただvbaそもそもの概念として、エクセルのスクリプトであるという点がある
あんまり大きなclass作りたいなら、別言語の方が良いと思う
エクセルvbaはゲームとかもキツイ(メインloopが超貧弱でvbaを起動しっぱなしだとよく落ちる)

>また複数の関数を目的別に整理する方法として
>パッケージやモジュール単位にまとめたり
>マップに収納したりはできるのでしょうか?
標準モジュール単位でまとめられるけど・・・
エクセルvbaの標準モジュールは「どのシートにも共通する処理」のような意味合いで用いられる

よくも悪くも、vbaはエクセルのためにあるので
あまり壮大な事をするのには向いていない

771デフォルトの名無しさん (JP 0Ha3-tCSL)2022/06/28(火) 20:59:53.87ID:+0CREnk7H
>>770
class調べてみます!
モジュールとclassが使えれば
見やすいコードかけるかも!

そんな壮大なプログラムを作るつもりなないのですけど
一処理、一関数にしたいとなると
ある程度の単位で処理をまとめていきたいなって

ご丁寧なご解説に感謝です
ありがとう、神様!

772デフォルトの名無しさん (ワッチョイ ff02-tQxS)2022/06/28(火) 21:13:22.89ID:i28fB/zi0
>>750
アドバイスありがとうございます!

入金消し込みの自動化をせよと上司からの指示で、初心者なりになんとかやってるんですが、会計ソフトの会社でもお手上げな仕組みの売掛金管理のようです。

setとcellsでなんとか、試行錯誤してやってみようと思います!

またわからなくなったら、質問させて頂きます。

773デフォルトの名無しさん (アウアウウー Sad3-/ybv)2022/06/28(火) 21:26:40.99ID:WQvDBuzoa
十年近くぶりに触るし上級者だったとかじゃないけど
VBAで
今開いてるPhotoshopの選択しているレイヤーを基準にExcelの指定セル範囲(例:A1からA20)を1セルごとにレイヤーを1枚作りセルの中身を文字ツール(テキスト)でレイヤーを作成。
例:ExcelのA1に「あいう」、A2に「えお」、A3に「123」が入力されていたとし、指定範囲選択(A1〜A3)を、開いてるPhotoshopにレイヤー追加しながらテキストレイヤー「あいう」、「えお」、「123」を作る(計3枚)。その際、Excelに近い見た目の形で…この場合、横に少し間隔を空けて「あいう」「えお」「123」が並ぶように作成する。(文字の大きさや色は直前に使ったpxサイズ、色とする)
って出来ますか?

774デフォルトの名無しさん (ワッチョイ 3f4f-60CD)2022/06/28(火) 21:45:50.92ID:3ZxXgE6I0
いや、関数内関数?
まぁ似たようなものはあるよ。
GOSUBってのが。

ただ、これも負の遺産のひとつだから
あまり使うことはお勧め出来ないけど。

775デフォルトの名無しさん (ワッチョイ 0f93-+tXk)2022/06/28(火) 21:52:47.26ID:/U22FX/80
gosubは全然違うでしょ

776デフォルトの名無しさん (ラクッペペ MM4f-OnVC)2022/06/28(火) 22:11:43.10ID:GB8Zx7jKM
関数内関数いわゆる高階関数について、VBA関数には高階関数のための機能は無いけどワークシート関数のLAMBDAが該当する

777デフォルトの名無しさん (ワッチョイ ff68-TsA2)2022/06/28(火) 22:18:47.50ID:8yuWSL180
確かに!その発想は正解だが・・・だが・・・

778デフォルトの名無しさん (ワッチョイ 8f5f-tCSL)2022/06/28(火) 23:36:42.40ID:EFCYXnQm0
>>773
COM経由で操作できるっぽい。こんなのが引っかかった
https://minatoya.work/419/

779デフォルトの名無しさん (アウアウウー Sad3-DrrO)2022/06/29(水) 07:26:36.96ID:f9LCV9hba
>>776
お前名前に騙されやすいタイプだろw
LAMBDA は単なる関数定義で VBA スレ的にはユーザー定義関数と変わらんぞ
ユーザー定義関数はマクロブックにしか入れられないから LAMBDA が作られた

780デフォルトの名無しさん (ワッチョイ 7fda-eqyh)2022/06/29(水) 08:15:54.31ID:SMNkprrA0
他のプログラミングと同じだと思われているのかな LAMBDA 関数は

781デフォルトの名無しさん (ワッチョイ 4fda-hyng)2022/06/29(水) 08:48:09.67ID:sZpGYWcf0
ユーザー定義関数では(コーディング時に)関数を自作することはできるが、(実行中に)関数内で関数を定義したり
(実行中の)関数の引数に関数そのものを与えるたりすることはできない
そもそもユーザー定義関数とLAMBDA関数はまったく別のもの

Excelの新関数「LAMBDA」(ラムダ)が一般提供開始 ~Excel数式が本格的なプログラミング言語に
https://forest.watch.impress.co.jp/docs/news/1387035.html

782デフォルトの名無しさん (アウアウウー Sad3-/ybv)2022/06/29(水) 08:51:20.38ID:GuRBEGnka
>>778
ありがとう
そこのページ起点に頑張ってみる

783デフォルトの名無しさん (ラクッペペ MM4f-OnVC)2022/06/29(水) 08:55:02.95ID:8rr9zLPCM
関数型パラダイムをサポートしている言語か、最低でもC言語などで関数ポインタを使ったことがある人でないと高階関数の概念は理解が難しい

784デフォルトの名無しさん (アウアウウー Sad3-n9/C)2022/06/29(水) 10:34:47.30ID:7c8LgVFIa
privateで良くないか

785デフォルトの名無しさん (アウアウウー Sad3-DrrO)2022/06/29(水) 12:27:16.10ID:f9LCV9hba
>>781
高階関数の話ならそこに書いてあるMAPとかSCANがLAMBDAを受けられる様になったことを言うべき
あと関数内関数と高階関数は全く別物だし実行中に定義できるかかどうかも関係がない

786デフォルトの名無しさん (アウアウウー Sad3-ci0b)2022/06/29(水) 13:48:20.01ID:Es0nfTu8a
記者がアホなんやで

787デフォルトの名無しさん (ワッチョイ 7fda-eqyh)2022/06/29(水) 14:05:01.02ID:SMNkprrA0
ネットの記事って怪しかったり間違っているのが多々あるよね

788デフォルトの名無しさん (ワッチョイ 0f7c-+tXk)2022/06/29(水) 14:22:16.06ID:3IrndTU40
ネットの記事だけがそうだと思ってる?

789デフォルトの名無しさん (ワッチョイ cf49-5iuk)2022/06/29(水) 14:30:17.44ID:par7A0IW0
はい次の方

790デフォルトの名無しさん (ワッチョイ 3f4f-60CD)2022/06/29(水) 14:59:30.13ID:0RCF24VI0
.Netでもひとつの壁と言われているラムダ式が
VBAどころかEXCELで使えるようになるのか。
胸熱だが脱落者も増えるだろうな。

791デフォルトの名無しさん (ラクッペペ MM4f-OnVC)2022/06/29(水) 15:07:56.16ID:Ajq9RLSRM
一般的な意味での高階関数は数学的な抽象概念としての話ではあるけど、プログラム言語としては第一級関数の実装のことを言う場合が多い
(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

792デフォルトの名無しさん (ワッチョイ 4f2f-BYhf)2022/06/29(水) 15:09:05.56ID:JurptZkT0
脱落者なんて増えないさ
世の中にエクセルの全機能使いこなしてる奴なんていないからな
理解できない機能は使われないだけだよ

793デフォルトの名無しさん (ワッチョイ 3f4f-60CD)2022/06/29(水) 17:35:51.56ID:0RCF24VI0
>>791
読んでてよく分からんかったけど
要はアセンブラでいうところのアドレスの間接参照とか
間接修飾とか言われているやつで
.NetではDelegate、VBAではCallByNameによるコールバックって理解でいい?

794デフォルトの名無しさん (スッップ Sd5f-gXkX)2022/06/29(水) 17:43:32.68ID:8wQcCZ0gd
VBAでできない事をダラダラと話さず別スレいけばいいのに

795デフォルトの名無しさん (ラクッペペ MM4f-OnVC)2022/06/29(水) 17:56:17.53ID:vfJ3sAv3M
Excelで例えるなら関数を特定のオブジェクトのメソッドとしてではなく、それ自体を実体のあるオブジェクト(あるいはコレクション)と見做すようなもの
利用側の関数内で関数オブジェクト(のようなもの)を参照する手段として関数そのものをラムダとして扱う

796デフォルトの名無しさん (JP 0Ha3-tCSL)2022/06/29(水) 18:54:09.74ID:zPLPBKg6H
エクセルもVBAも詳しくないんですけど
VBAは非同期処理でコールバック関数を使わないんですか?

797デフォルトの名無しさん (ラクッペペ MM4f-vdZT)2022/06/29(水) 19:06:05.99ID:tW8kR1cqM
イベント駆動型ですから

798デフォルトの名無しさん (アウアウウー Sad3-DrrO)2022/06/29(水) 19:13:20.08ID:i0xj9Opya
>>794
高階関数っていうのを最近覚えたんだろうな
関数内関数に1mmも関係ないのにしつこく語ってる
他の言語スレだと瞬殺されるレベルだからこんなスレで管巻くしか無いんだろうw

799デフォルトの名無しさん (エアペラ SD63-+tXk)2022/06/29(水) 19:15:29.13ID:uu2mw40gD
>>796
使おうと思えば使える

800デフォルトの名無しさん (JP 0Ha3-tCSL)2022/06/29(水) 21:47:59.24ID:zPLPBKg6H
>>799
コールバック関数を使えるのなら
引数に関数参照できるということです?
なら変数に関数を代入できそう

801デフォルトの名無しさん (JP 0Ha3-tCSL)2022/06/29(水) 21:55:21.60ID:zPLPBKg6H
>>797
非同期処理はイベント処理に依存してるってことでしょうか?
コメントありがとうございました
VBA初心者なのでいろいろ勉強していきます

802デフォルトの名無しさん (ワッチョイ 4fda-hyng)2022/06/29(水) 22:13:03.71ID:sZpGYWcf0
>>800
特定のオブジェクトやクラスに所属する関数やAPIなどシステムで定義された関数(メソッド)であればコールバック関数で参照することはできる
グローバルのユーザー定義の関数はラムダ式で記述するなどの手段を使わない限りは無理

803デフォルトの名無しさん (ワッチョイ 4f2f-BYhf)2022/06/29(水) 22:45:43.93ID:JurptZkT0
コールバック「関数」とはなにを指してるんだろうかねぇ

コールバックを実現する手段はイベント以外に
CallByNameとかApplication.Runとかでまあ実現できなくはない

804デフォルトの名無しさん (JP 0Ha3-tCSL)2022/06/29(水) 22:55:30.76ID:zPLPBKg6H
コールバック関数は何を指しているのか
なぜラムダ式が存在するのか
即時関数とラムダはどこから分岐していったのか
関数プログラミングは本当に有益なのか
本当に変数は悪者で動的型付けは悪なのか
それらはもはや哲学なのかもしれません

805デフォルトの名無しさん (ワッチョイ ff68-TsA2)2022/06/29(水) 23:01:15.11ID:L0Xzxy470
慣れれば別にどっちでも・・・って感じになるけどな

806デフォルトの名無しさん (ワッチョイ 8f5f-tCSL)2022/06/29(水) 23:50:10.86ID:HQQahVZ60
>>783

自作の階乗作らせりゃ一発だろ。Cの関数へのポインタとか、可読性0に近い。組んでて楽しいけど、1ヶ月後の自分はこれを理解できるだろうかという疑問が湧くw

807デフォルトの名無しさん (ワッチョイ 3f4f-60CD)2022/06/30(木) 05:47:49.15ID:P7B/AZjs0
まぁでもあんまりVBAでコールバック使う機会ないかな
呼び出しや生成元のモジュール側の関数を
呼び出された側や生成された側から呼び出すときに
密結合になるのを避けるためくらいにしか使ってない

808デフォルトの名無しさん (JP 0Ha3-tCSL)2022/06/30(木) 07:16:43.81ID:1TbRNwlJH
>>807
エクセルVBAでDBのデータやファイルデータを読み込むとき
非同期にならないように処理するってことなんでしょうか?
例えばフラグを立ててdo-while、breakで処理待ちしてから次の処理に進むとか?
webのように処理と表示のタイムラグを気にするようなことがないのかもしれませんね

809デフォルトの名無しさん (ワッチョイ 8f5f-tCSL)2022/06/30(木) 07:32:44.20ID:wDIpT9iQ0
それすんごい資源食わないか?

810デフォルトの名無しさん (JP 0Ha3-tCSL)2022/06/30(木) 07:37:53.64ID:1TbRNwlJH
>>809
vbaはコールバックを使わないということらしいのですが
コールバックを使わずに非同期処理する方法があるのでしょうか?

811デフォルトの名無しさん (ワッチョイ 3f01-DrrO)2022/06/30(木) 07:47:00.24ID:NKnrqd7g0
ない(もしくはめちゃ面倒だ)から諦めろ
非同期やりたいなら他の言語使え

812デフォルトの名無しさん (ワッチョイ 4fe6-vdZT)2022/06/30(木) 07:59:35.80ID:wyi1xEzY0
VBA走らせている間に漫画でも読んどけよ

813デフォルトの名無しさん (JP 0Ha3-tCSL)2022/06/30(木) 08:04:39.54ID:1TbRNwlJH
え、昨夜のレスでは非同期使えるって言われたので
多言語と同じようにpromise的な処理があるのかと思いました
非同期めちゃくちゃ面倒ってことは
エクセル処理で非同期を使うという発想が間違っているのですね

なんかいろいろ勘違いしていたみたいでした
神様、先輩方、すみませんでした

814デフォルトの名無しさん (ラクッペペ MM4f-vdZT)2022/06/30(木) 08:14:56.75ID:CdZVH0NpM
vbsとか使って外部プロセスに追い出すのが簡単だな

で、何を並列処理したいのかな?

815デフォルトの名無しさん (スッププ Sd5f-2lfq)2022/06/30(木) 09:30:19.73ID:TLf+rFOod
JavaScriptの経験があるなら今更VBAなんかに手を出さなくてもOfficeスクリプト使えばいいでしょ
デスクトップでもサポートされたからもうVBAいらないよ

816デフォルトの名無しさん (ワッチョイ 3f4f-60CD)2022/06/30(木) 10:09:22.67ID:P7B/AZjs0
>>815
え、マジ?
もう企業や教育者向けのじゃなくても開発出来るの?

817デフォルトの名無しさん (スプッッ Sdbf-tCSL)2022/06/30(木) 10:36:29.60ID:3IHNP7gZd
ブック1開いてマクロ実行
待ってる間にブック2開いて手作業
ブック2保存して閉じたら、そのタイミングでブック1のマクロが停止
これって仕様?

818デフォルトの名無しさん (アウアウウー Sad3-sbT5)2022/06/30(木) 11:24:18.66ID:l3rHcZB/a
排他処理なにそれおいしいの?

ファイル保存したらマクロが止まるのは仕様

819デフォルトの名無しさん (スップ Sd5f-oz1A)2022/06/30(木) 15:49:46.55ID:RZ5lqdEjd
VBAいじっている間にいつの間にかボタン表面が白くなって
userformの背景色や、userformで使われているボタン表面のも同じ白色に変色
まったく新しくファイルを作っても同じ現象が起きる
オフィスをインストールし直しても同じ

例外的にいつもの正常なボタンの表面色で表示されるケースがある
Excel VBA 質問スレ Part76 YouTube動画>3本 ->画像>10枚
この現象が起きる前に作ったファイルのコピーを作る。このコピーを開く。
このとき、セキュリティ警告が出てる間はなぜか正常なボタン表面色
コンテンツ~のボタンを押した瞬間にボタンが白くなる
Workbook_Openとかはそもそもない

今のおかしな状態が黒線の左側で、右側がセキュリティ警告が出ている状態

VBEでUserForm自体・ボタン・テキストボックス、これらの背景色BackColorの値は
&H8000000F&
これって正常な値ですよね?
つまり内部的には正常な値なのに表示はいずれも真っ白

windowsやモニタの設定の影響であればセキュリティ警告が出てようが無関係に白色化しているはず


何か原因わかる方いますか?
そもそもVBAが関係しているかどうかも分からないのですが。
ちなみに他のエクセルとは無関係のソフトウェアの色は特に変化はないように思います

820デフォルトの名無しさん (スップ Sd5f-oz1A)2022/06/30(木) 15:56:36.78ID:RZ5lqdEjd
>>819ですが、文章ちょっとおかしなところがありました
ユーザーフォーム上のボタンも、ワークシートに直接おくボタンも同じように白色になっているということです
そもそもボタンだけじゃなくて&H8000000F&で色が表示されている部分は
どれもおかしくなっているような状態です

821デフォルトの名無しさん (ラクッペペ MM4f-vdZT)2022/06/30(木) 16:27:38.04ID:CdZVH0NpM
たいして白くない件

822デフォルトの名無しさん (スップ Sd5f-oz1A)2022/06/30(木) 16:32:48.48ID:RZ5lqdEjd
>>821
真っ白です

→は例外的に正常に表示されるケース
←が現状
Excel VBA 質問スレ Part76 YouTube動画>3本 ->画像>10枚

823デフォルトの名無しさん (ワッチョイ 4f2f-BYhf)2022/06/30(木) 17:41:14.60ID:1+oYjPxt0
>>810
非同期と並列処理の区別をつけろよ
非同期=コールバックでもないしな

824デフォルトの名無しさん (ワッチョイ 4f2f-BYhf)2022/06/30(木) 17:47:02.54ID:1+oYjPxt0
>>819
テーマが適用されてるだけな気がする

825デフォルトの名無しさん (ワッチョイ 7fda-tCSL)2022/06/30(木) 18:26:58.93ID:m1ZMAziu0

826デフォルトの名無しさん (JP 0Ha3-tCSL)2022/06/30(木) 21:06:49.66ID:1TbRNwlJH
>>823
そうですね
コールバックがマルチスレッドって言ってるわけでも
プロセスを分けるって言ってるわけでもないです
全ての非同期処理は並列処理でもないですし
コールバックは処理なので、非同期でもないですし
VBAは初めてなのでいろいろ勉強していきます
なんか変なこと言っていたらごめんなさい

827デフォルトの名無しさん (スッップ Sd5f-gXkX)2022/06/30(木) 22:28:19.76ID:SUgmTyTCd
自分はやりたい事の手段の一つにExcelVBAがあるだけでExcelVBAでどこまでできるかってのは気にしてない
別の言語を選択すれば可能ならExcelVBAにこだわることもないしね
勉強するあたりのレベルならExcelVBAだけでなくほかの言語も勉強したほうがいいかもね

828デフォルトの名無しさん (JP 0Ha3-tCSL)2022/06/30(木) 23:19:39.52ID:1TbRNwlJH
エクセルの参加人数はすごいと思います
参加人数の多いエクセルをプラットフォームとしてデータ処理できるVBAは
他の言語には見られない参加者人数の価値があります(これを英語で何と言ったか忘れましたが)
ハードもプラットフォームも、潜在的な参加者の数で価値を測るという考え方が正しければ
エクセルVBAは他の言語をはるかに凌ぐ学習価値があると思うのです

他の言語を学習しつつもVBAも使えるというのは
とても素晴らしいことなのだと、VBA初学者としても感じています
先生方、これからもご指導いただける機会がありましたらよろしくです

829デフォルトの名無しさん (スプッッ Sddf-319G)2022/07/01(金) 00:44:30.82ID:iVoRsqHDd
>>828
お前は二度と来なくていいよ

830デフォルトの名無しさん (ワッチョイ 3fda-eqyh)2022/07/01(金) 00:49:35.03ID:T8FFb7IX0
>>828
ちょっと何いってるか分からない

831デフォルトの名無しさん (ブーイモ MM4f-r+Rc)2022/07/01(金) 01:26:43.65ID:miA2ycF9M
魔界に転生するとしたら、リザレクの次くらいに持っていたいスキルですもんね。
転生するまでに習得したいと思います。

832デフォルトの名無しさん (ワッチョイ 4fc7-tCSL)2022/07/01(金) 01:41:24.35ID:wxGP1WcO0
シート上に実行ボタンがあり、いろいろなBookから値を取得してメインのブックに張り付けるマクロがあるのですが、
Windows7+Excel2010とWindows10+Excel2016では、2016方が数倍動作が遅いです(数秒程度が10秒程度になる)。
ただし、時々2010と同程度で終わることがあり、原因がよくわかりません。
なんか、実行ボタンの押し方によって(クリックしてマウスポインタをすぐExcelのウィンドウ外に移動)、
速度が速くなるような気がしているのですが、そのようなことはあるのでしょうか?
あるとすれば、なにか対策や原因はあるのでしょうか?

833デフォルトの名無しさん (スフッ Sd5f-tCSL)2022/07/01(金) 02:14:42.23ID:u7q4KnhWd
>>832
2013あたりからExcelの内部構造が大幅に変わったらしい
Windowsも新しいほど重くなってる

マウスポインタの位置によって速度が変わるのは多いにあり得る
昔はボタンを押したままにするとアプリの動作が止まってたのが、いつのまにかずっと動き続けるようになったし

834デフォルトの名無しさん (JP 0Ha3-tCSL)2022/07/01(金) 06:59:23.11ID:JTFoUJU2H
>>829
DBシステムとしては
操作のバリエーション、検索、演算エンジンともに
最高峰の素晴らしい言語システムなのに
初心者に冷たいコミュニティなのですね

>>830
ネットワーク経済性と似た発想の価値測定方法で
ソフトやハードの経済価値を推定する思考方法です

835デフォルトの名無しさん (ワッチョイ 3f4f-60CD)2022/07/01(金) 07:51:36.56ID:m7rasyZv0
>>834
いやいや、DBシステムとして使うとすると
シートにSQL投げようとしたとき
インデックス貼れない時点で欠陥品だよ。

EXCELの本分はあくまで表計算。

836デフォルトの名無しさん (ワッチョイ 0f93-+tXk)2022/07/01(金) 08:45:57.76ID:Dqsnfi220
>>834
まずDBシステムじゃないし
COMから学んではどうか

837デフォルトの名無しさん (ブーイモ MM4f-2lfq)2022/07/01(金) 09:01:55.38ID:2BH0SskNM
今どき簡易DBアプリはPowerAppsみたいなローコードツールを使えばよい
オンライン共有のAccessみたいなアプリがクソ簡単に作れてExcelやスプレッドシートとの連携も容易

838デフォルトの名無しさん (アウアウウー Sad3-n9/C)2022/07/01(金) 11:26:48.78ID:MWfPFNZsa
>>832
気のせいだからほっとけ

839デフォルトの名無しさん (スップ Sddf-gXkX)2022/07/01(金) 11:27:33.06ID:B1H2Mtvqd
自分としては質問があればそれにこたえるだけでいいと思うが
技術者が他の事にも手を広げるならクソ簡単かもしれないが
一般ユーザーが背伸びしてVBAを理解しようとしてるなら保守なんかも含めてハードル高いと思うんだよね
まあ言いたい人は好き勝手に言うだけだから止められないが

840デフォルトの名無しさん (ラクッペペ MM4f-vdZT)2022/07/01(金) 11:46:09.70ID:Kpd5ohp2M
自分としては質問があれば質問するだけでいいと思うが
一般ユーザーが背伸びして回答なんかハードル高いと思うんだよね
まあ言いたい人は好き勝手に言うだけだから止められないが

841デフォルトの名無しさん (ワッチョイ cfda-eqyh)2022/07/01(金) 15:15:30.41ID:Bx5b0a9x0
大事な事だから二度と言うな

842デフォルトの名無しさん (ワッチョイ ff68-TsA2)2022/07/01(金) 15:46:06.01ID:Ry4wIvAM0
どっちだよw

843デフォルトの名無しさん (アウアウウー Sad3-sbT5)2022/07/01(金) 15:50:37.55ID:E3WEdYada
背伸び?逆やろ
背伸びしようとするタイプはVBAなんて使わない
伸びない香具師がVBAに固執してる

844デフォルトの名無しさん (ブーイモ MMb3-tCSL)2022/07/01(金) 15:51:42.30ID:S5EpTQdXM

「いいですか?1回しか言いませんからよく聞いてくださいね」
って言われたけど、なんで大事なことなのに1回しか言わないんだろう
そんなに大事なら確実に伝わるまで何回でも言うか書いて渡すかすべきだろ

845デフォルトの名無しさん (アウアウウー Sad3-eqyh)2022/07/01(金) 15:56:44.16ID:wWku/Klda
俺、一回しか教えねーぞ!
やるから見て覚えろ盗んで覚えろな!
これ、昭和の意地悪い上司。
それが当たり前だった時代

846デフォルトの名無しさん (ワッチョイ ff68-TsA2)2022/07/01(金) 15:57:57.34ID:Ry4wIvAM0
>>844
そうそう
アホちゃうの

847デフォルトの名無しさん (アウアウウー Sad3-eqyh)2022/07/01(金) 15:59:37.00ID:wWku/Klda
>>843
めっちゃ分かる
何がなんでもマクロでやっているヤツって何なんだろうね

848デフォルトの名無しさん (ワッチョイ 3f01-DrrO)2022/07/01(金) 17:12:32.89ID:B9UYAOsl0
>>844 みたいな考えの奴はたいていちゃんと聞いてないしメモ渡しても無くしたりするしw

849デフォルトの名無しさん (ワッチョイ ff68-TsA2)2022/07/01(金) 17:35:59.70ID:Ry4wIvAM0
>>848
メモ渡すってアホなん

850デフォルトの名無しさん (ワッチョイ 0f93-+tXk)2022/07/01(金) 17:57:54.04ID:Dqsnfi220
>>848
そういう奴でも同じ事何回か教えりゃ覚えるから、
分かんなかったらいくらでもまた聞けって言ってる
目的は教育コストの削減とかそいつの成長とかじゃなく仕事の完了な訳だから

851デフォルトの名無しさん (ブーイモ MM4f-r+Rc)2022/07/01(金) 18:43:10.74ID:miA2ycF9M
いやこれ、あわしろっていう新手の荒らしですよ。

852デフォルトの名無しさん (ワッチョイ 7fda-tCSL)2022/07/01(金) 19:33:27.88ID:rTaPWcb90
昭和からEXCEL使ってた人いる?

853デフォルトの名無しさん (ワッチョイ 3f01-DrrO)2022/07/01(金) 19:34:18.95ID:B9UYAOsl0
>>850
その場限りの相手ならそれが正解だけど>>849 みたいなポンコツは成長しないから今後とも仕事させるならとっとと切り捨てないと結局仕事の完了が遅れるだけ

854デフォルトの名無しさん (ワッチョイ 3f4f-60CD)2022/07/01(金) 19:41:46.04ID:m7rasyZv0
>>852
そもそも昭和の時代にEXCELあったっけ?
あの頃ってロータス123とか
マルチプランの時代じゃないの?

855デフォルトの名無しさん (ブーイモ MMb3-2lfq)2022/07/01(金) 19:42:01.43ID:Gg+5fIBkM
>>853
そういうことを言い出したら極論VBA使いもクビにして優秀なエンジニア雇えという結論にしかならん
雇用維持も企業の責任

856デフォルトの名無しさん (ワッチョイ 4f5f-BW8P)2022/07/01(金) 19:52:08.13ID:lB7C8CJv0
>>833
複数のブックを別ウインドウで開くようになったからな
個人的にはユーザーフォームが最前面に来ないのがめんどい

857デフォルトの名無しさん (ワッチョイ 4f5f-BW8P)2022/07/01(金) 19:52:42.66ID:lB7C8CJv0
あと最小化するとユーザーフォームも消えるのが嫌だな

858デフォルトの名無しさん (ワッチョイ 3f01-DrrO)2022/07/01(金) 20:32:48.53ID:B9UYAOsl0
>>854
最初の日本語版は1989年(平成元年)リリースだから日本語版を使ってた人は居ないはず
最初のExcelはMac用に1985年(昭和60年)にリリースされてるみたいだからもしかしたら触った人がいるかもしれない

859デフォルトの名無しさん (ワッチョイ 3f01-DrrO)2022/07/01(金) 20:38:52.77ID:B9UYAOsl0
>>855
別に辞めさせなくてもポンコツはポンコツで務まるような職場に移せば良いだけだろ

860デフォルトの名無しさん (ワッチョイ ff90-gXkX)2022/07/01(金) 21:05:26.47ID:0+5KhUlf0
vbエディターを開いたときに開いているブックのモジュールやらUFやらがバーっと開くのを止めさせたいんですが、どなたかご存じないですか?毎回重ねて並べて閉じるのがめんどい。

861デフォルトの名無しさん (ワッチョイ 3f59-ShbF)2022/07/01(金) 21:10:05.40ID:CjhzObSj0
ラジオボタンがクリック1回で反応しなくて2回マウスでカチカチって指定しないといけないんだけど、直し方わかる人いますか?(´・ω・`)PCの問題なんかな?

862デフォルトの名無しさん (ワッチョイ 3f3d-9oGY)2022/07/01(金) 21:42:37.97ID:kFE+Jjo70
マルチプランならあるな。
と言っても平成のはじめだけど。
あの時代はPC買うとおまけで違法コピーモノがもらえる時代だからな、
マルチプランも123も両方あったわ。
当時は123のほうが強かったんだよね。
Excelとマルチプランて名前が変わっただけじゃないの?

863デフォルトの名無しさん (ワッチョイ 87da-XUZM)2022/07/02(土) 00:17:07.82ID:7TC/SMOx0
Excel3.0から使っていたら人ならいたよ。
とっくに定年退職されてます。
最近のExcelはごちゃごちゃしていて苦手と言っていたかな。

864デフォルトの名無しさん (ブーイモ MMb6-K8/U)2022/07/02(土) 00:35:50.92ID:eLIQ72LUM
Collectionについての質問なのですが
Collectionの要素をソートする場合
それ用のSubを作って、その中でソート後のCollection変数を作ってその中に順番に要素を1つ1つ入れていって最後に
set 元のcollection=新collection
とやる方法を考えつきました。

この方法で問題ないですか?それとももっとスマートな方法がありますか?

865デフォルトの名無しさん (ワッチョイ 87da-3xOz)2022/07/02(土) 00:50:08.19ID:vnn63W/20
懐かしいの。
当時 IBM 5550とかいうパソコン使ってた記憶がうっすらある
そこでマルチプラン動かしてた
ところが海外拠点ではロータス123 の方が評判でどこかでそれに切り替えた記憶がある。同時に IBM 55505何かに変更したような記憶があるな

マック使ってたやつが Excel を自慢して確かに羨ましかったな
DOS V パソコンで Windows 3.1が動いてその上で Excel が動いた時は感激したな

866デフォルトの名無しさん (ワッチョイ 0a7c-J5l3)2022/07/02(土) 01:12:48.41ID:yZ67dQaR0
昭和ならロータス123とアシストカルク使ってたな
あれはDOSだったかな?

867デフォルトの名無しさん (ワッチョイ 0a7c-J5l3)2022/07/02(土) 01:21:18.54ID:yZ67dQaR0
DOSの頃はファイラーはFD、ネットはエアクラフト、お絵描きはkid98、音楽はMIMPIがデファクトスタンダードだった

868デフォルトの名無しさん (ワッチョイ 87da-XUZM)2022/07/02(土) 01:36:45.55ID:7TC/SMOx0
昔は企業で使うPCソフトといえば表計算と文書ソフトぐらいだったもんね。

869デフォルトの名無しさん (ワッチョイ 8a4f-iquj)2022/07/02(土) 06:04:41.51ID:kG8DYDgz0
>>864
良いんじゃない?それで。
用途にもよるけどコレクションにキーくっつけといて
別にキー一覧みたいのをソートして作っといて
そのキーからソートした順番に引っ張るっていう方法もあるけど。

870デフォルトの名無しさん (ブーイモ MMb6-K8/U)2022/07/02(土) 06:14:46.63ID:v1xY47GsM
>>869
あれれそうですか。
キーの方法も良さそうですね。

でもこんなひとはよく使用しそうなのに話が盛り上がらないのは
みんなのVBAのスキルが低レベルだからでしょうか?

871デフォルトの名無しさん (ブーイモ MMb6-K8/U)2022/07/02(土) 06:15:13.26ID:v1xY47GsM
x こんなひと
o こんなこと

872デフォルトの名無しさん (ワッチョイ bb93-Omw7)2022/07/02(土) 06:29:09.78ID:BdV6t7uW0
すげーな、普通の人が寝る夜中に盛り上がらないからって他人を低レベル呼ばわり

873デフォルトの名無しさん (ワッチョイ 0a7c-J5l3)2022/07/02(土) 06:35:31.84ID:yZ67dQaR0
>>870
かまってもらえないからみんなまとめて低レベル扱いですかそうですか
くさっ

874デフォルトの名無しさん (ワッチョイ 8a4f-iquj)2022/07/02(土) 06:52:10.92ID:kG8DYDgz0
>>870
なるほど、ただの煽りかも知れないけど
あまり人前でそう言うことは言わない方がいい。

人を嫌な気分にさせるし
自惚れ屋と思われて周りからも疎まれることになる。
自分の為にも思ったことは口にしたり書き込んだりする前に一度考えてから実行する方が良いよ。

875デフォルトの名無しさん (エアペラ SD13-qRYS)2022/07/02(土) 07:31:29.49ID:LyZZMtStD
>>870
当たり前の処理のどこに盛り上がる要素があると思うのか
そもそもソートが必要なものにcollection(リスト)使おうって時点で
データ構造の選択を間違ってる可能性が大きい

876デフォルトの名無しさん (ブーイモ MMb6-K8/U)2022/07/02(土) 07:35:58.08ID:+UfCFyJWM
わかった
じゃあいい

877デフォルトの名無しさん (ワッチョイ 0a42-u2XW)2022/07/02(土) 07:38:04.43ID:Vi0lNJ4o0
釣られすぎ

878デフォルトの名無しさん (ブーイモ MMb6-K8/U)2022/07/02(土) 07:40:07.80ID:+UfCFyJWM
For-Next文の中だけで使う局所ローカル変数を定義する場合は
そのFor-Nextブロック内で
Dim a as String
でいいんですっけ?
それともモジュールの先頭で?

たしかVBAでは局所ローカル変数の概念がなくて
Sub/Function内すべての場所で使える気がするのだけど。

879デフォルトの名無しさん (ワッチョイ 8a4f-iquj)2022/07/02(土) 07:49:38.67ID:kG8DYDgz0
>>878
局所ローカルという呼び方をするのかは兎も角
関数やメソッド以下のスコープ変数は基本的には設定出来ない。

変数宣言をする場所についてはVBAに限らず
そのスコープが始まる頭のところに書くのが一般的だよね。
ただ、言ってる通り別に先頭に書かなくても問題なく実装は出来る。

880デフォルトの名無しさん (ブーイモ MMc6-SrHA)2022/07/02(土) 07:49:48.13ID:vz70zrJPM
>>870
盛り上がったじゃないか
良かったな

881デフォルトの名無しさん (エアペラ SD13-Omw7)2022/07/02(土) 07:49:50.15ID:LyZZMtStD
>>878
言うとおり局所ローカル変数は存在しないのでFunctionやSubの中ならどこでもいいよ
モジュール先頭(Function、Subの外側)だとグローバル変数かパブリック変数になるからその目的ならダメ

882デフォルトの名無しさん (ブーイモ MMb6-K8/U)2022/07/02(土) 07:58:43.11ID:+UfCFyJWM
>>879
>>881
なるほどありがとうございます。
やっぱりできないのですね。

でもSub/Function先頭に書くと可読性が著しく下がる(この意味が分からない人はスキル低すぎ)のでやめときます。
われわれのように複雑なプログラミングをしてる人にとってはVBAの言語はいろいろ不便に感じますね。

883デフォルトの名無しさん (ワッチョイ 8a4f-iquj)2022/07/02(土) 08:01:20.13ID:kG8DYDgz0
>>882
だからそう言った言い方はやめた方がよいかと。
モロに自分が「単一責任原則も知らずにスパゲッティコード組みます」と言ってるようなものだから。

884デフォルトの名無しさん (エアペラ SD07-Omw7)2022/07/02(土) 08:27:22.57ID:bQuvSXdqD
>>882
COBOL書いたら死んでしまいそうな人

885デフォルトの名無しさん (ワッチョイ 8a01-BQ8I)2022/07/02(土) 09:00:40.59ID:At3W7bIA0
>>878
まあ好みだけど俺は変数宣言は可能な限り使う直前って決めてるからそのケースならループ内で宣言する

886デフォルトの名無しさん (ワッチョイ 0a63-63P4)2022/07/02(土) 09:30:40.85ID:6d3aqhyk0
チゲ鍋みたいだな局所ローカル

887デフォルトの名無しさん (ワッチョイ bfe6-kTQg)2022/07/02(土) 09:41:11.94ID:qJpeB53K0
DSのプチコンでローカル変数のありがたさを思い出したな

888デフォルトの名無しさん (アウウィフ FFcf-9ZeA)2022/07/02(土) 09:55:37.37ID:COZLaCzbF
局部もろ観え

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

890デフォルトの名無しさん (ワッチョイ ab7c-Omw7)2022/07/02(土) 13:17:36.46ID:Y5ZkAX2p0
ReDimの存在

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

>>890
ReDim は実行文だよ

892デフォルトの名無しさん (ワッチョイ 87da-XUZM)2022/07/02(土) 14:54:16.39ID:7TC/SMOx0
久々に熱いスレになったね

893デフォルトの名無しさん (ワッチョイ 87da-3xOz)2022/07/02(土) 16:46:05.89ID:vnn63W/20
>>891
普通の文と同じように実行されるわけはないと思ったんで疑問形で書いたんだけど

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

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

教えてくれませんか?

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

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

896デフォルトの名無しさん (オッペケ Sr23-BXQt)2022/07/03(日) 12:22:53.01ID:Jv7ZJhwXr
>>882
なんでわざわざ煽る言い方するわけ?
マシで理解できないわ

897デフォルトの名無しさん (ワッチョイ 73da-XUZM)2022/07/03(日) 12:39:04.19ID:v1f+WlYn0
スレ立ち上げ当初みたいに、こうやって真面目な議論してれば良スレなんだよな。

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

898デフォルトの名無しさん (ワッチョイ deda-auNL)2022/07/03(日) 13:05:07.71ID:Fpu/jUUc0
質問者の質も落ちた

899デフォルトの名無しさん (ワッチョイ 73da-XUZM)2022/07/03(日) 16:27:46.74ID:v1f+WlYn0
初期の頃、Excel板かここかは忘れたけど、質問も即答してくださる凄い回答者が何人かいた覚えがある。

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

900デフォルトの名無しさん (ワッチョイ bb93-Omw7)2022/07/03(日) 17:15:16.28ID:ur8aI9T40
そういえば昔って質問にもテンプレなかったっけ

901デフォルトの名無しさん (ワッチョイ 1bac-hFrK)2022/07/03(日) 18:58:18.36ID:95K4DRnu0
てか議論するスレでもないけどな

902デフォルトの名無しさん (ワッチョイ 73da-XUZM)2022/07/03(日) 21:36:18.00ID:v1f+WlYn0
思い出した。昔はいくつかのVBAスレがあった

903デフォルトの名無しさん (ワッチョイ 27ce-auNL)2022/07/03(日) 21:53:26.02ID:+uLGaU5J0
【VBA エキスパート】 Excel / Access http://2chb.net/r/lic/1640108986/
素人にVBA仕込んだ http://2chb.net/r/prog/1642131517/
VBAのフリーランスエンジニアは需要ありますか? http://2chb.net/r/prog/1598637098/
Excel VBA 質問スレ Part76 http://2chb.net/r/tech/1651339421/
VBAなんでも質問スレ Part3 http://2chb.net/r/tech/1631184381/
Access VBA 質問スレ Part2 http://2chb.net/r/tech/1544620479/
★今VBAを勉強してるんだが★ http://2chb.net/r/php/1214626617/

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

905デフォルトの名無しさん (スプッッ Sdaa-CsJ7)2022/07/04(月) 13:01:53.71ID:OO2ZWbG3d
>>904
それ、しつこくForがどうのと聞いていた例のあいつだから

906デフォルトの名無しさん (ワッチョイ 73da-XUZM)2022/07/04(月) 16:21:37.95ID:vF9E34H30
>われわれのように

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

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

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

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

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

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

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

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

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

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

909デフォルトの名無しさん (エアペラ SD07-Omw7)2022/07/04(月) 17:57:33.89ID:oo1ug/2UD
俺は上書き保存が怖いので.xltmを渡してる

910デフォルトの名無しさん (アウアウウー Sacf-BQ8I)2022/07/04(月) 18:50:46.28ID:tF6z07pca
>>909
リードオンリーで開くにしとけばいいだけじゃね?

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

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

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

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


毎回これでやってる

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

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

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

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

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

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

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

916デフォルトの名無しさん (スフッ Sdaa-A+Eo)2022/07/05(火) 08:39:26.47ID:ZlAE1xYZd
別にVBSにこだわる必要は無い
Powershell でも良いでしょ

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

vbaにて処理は出来るようになったけど、他の人が使いたいという意見があり、今回配布手段についてご相談させてもらった次第です。
Excel VBA 質問スレ Part76 YouTube動画>3本 ->画像>10枚
Excel VBA 質問スレ Part76 YouTube動画>3本 ->画像>10枚

918デフォルトの名無しさん (ワッチョイ 8749-hFrK)2022/07/05(火) 09:33:47.87ID:gxzY68gk0
・WebからDLするドキュメントをCSVにでもしてもらえるよう社内調整する
が一番ラクで確か

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

920デフォルトの名無しさん (アウアウウー Sacf-gU6j)2022/07/05(火) 11:43:19.49ID:QxOevurCa
上の人間の指示通りにするので悩まない

921デフォルトの名無しさん (ワッチョイ 73da-XUZM)2022/07/05(火) 11:57:42.97ID:Fkl5GJtU0
>>919
されますよ。

922デフォルトの名無しさん (ワッチョイ 8aad-QBhF)2022/07/05(火) 12:00:27.76ID:X6XwWL+o0
>>921
毎回アドインのコードが表示されているウィンドウを閉じていますか?
それとも、どこかの設定を変更すると表示されなくなりますか?

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

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

925デフォルトの名無しさん (ワッチョイ deda-auNL)2022/07/06(水) 18:47:05.73ID:8WsZe39w0
ちんぽじ

926デフォルトの名無しさん (ワッチョイ 73da-XUZM)2022/07/06(水) 19:59:54.47ID:D5LMB4PC0
2023でるかもね

927デフォルトの名無しさん (ワッチョイ fa3d-we7L)2022/07/06(水) 21:31:49.12ID:RzEtlOC+0
VBAxSeleniumでchromeはオプション設定が出来るけどedgeは出来ないと思ってたんだが、出来るんだな。
ネットでもうまくいかないていう情報が多い。

Chromeの場合
Driver.AddArgument ("user-data-dir=" & fso.BuildPath(CurrentDirectory, "chrome_vba"))

Edgeの場合
driver.SetCapability "ms:edgeOptions", "{""args"": [""user-data-dir=" & Replace(fso.BuildPath(CurrentDirectory, "edge_vba"), "\", "\\") & """" & _
"] }"

まあjsonで渡してるんだが、VBAてjsonてこんな風にデータベタ打ちしか方法がない?

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

929デフォルトの名無しさん (ワッチョイ a359-SbH4)2022/07/10(日) 15:06:01.33ID:TbXhrDsy0
えぇ((( ;゚Д゚)))恐い

930デフォルトの名無しさん (ワッチョイ 237c-Vv2X)2022/07/10(日) 16:22:28.20ID:Rxyi1Cuq0
ダウンロードして使うことがないからどっちてもええよ

931デフォルトの名無しさん (アウアウウー Sa09-VQN5)2022/07/11(月) 01:16:29.22ID:TTL+d6j7a
コロコロ変わるのは昔から
また変更あるぞ

932デフォルトの名無しさん (ワッチョイ cd5f-3+7c)2022/07/11(月) 01:40:13.99ID:vt1vW9IA0
インターネット経由がどうたらというのは、古いマイクロソフトと新しいマイクロソフトの内部抗争にすぎない。

933デフォルトの名無しさん (ワッチョイ 15da-VQN5)2022/07/11(月) 04:21:24.13ID:/TJLjZUe0
ああゆう最先端の企業でも老害が威張り散らしているのかな

934デフォルトの名無しさん (ワッチョイ cd5f-3+7c)2022/07/11(月) 04:31:29.20ID:vt1vW9IA0
ビルゲイツ派はAzue妨害派だろうな

935デフォルトの名無しさん (ブーイモ MM43-X/Ck)2022/07/11(月) 09:41:27.04ID:67sTwPgvM
大口の客がゴネたんだろう
VBAがいつまでも使えるのもそういう方々のお陰なのだからVBAer達は感謝しないと

936デフォルトの名無しさん (ワッチョイ 15da-VQN5)2022/07/11(月) 18:14:40.24ID:/TJLjZUe0
分かったよ

937デフォルトの名無しさん (ワッチョイ 03bd-TxaV)2022/07/13(水) 15:11:11.33ID:cdOR/i1g0
客先から毎日送られてくるpdfに対し、特定の部分だけを抜いてexcelに出すというものを作りたいです

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

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

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

938デフォルトの名無しさん (ワッチョイ cb8e-iSZE)2022/07/13(水) 17:04:46.28ID:+TgcJMJe0
>>937
客先にテキストでもくれと依頼すればいいだろ

939デフォルトの名無しさん (アウアウウー Sa09-2HoA)2022/07/13(水) 17:32:17.47ID:H0DndFW/a
pdfを書き換えたい訳じゃなくて中身を読みたいだけなら
pdfreaderを使うのが一番楽

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

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

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

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

942デフォルトの名無しさん (オイコラミネオ MM51-/dRU)2022/07/13(水) 19:16:11.37ID:RAwbutPOM
GOOGLEドライブに入れてドキュメントで開けばOCR使えるからそれを試してみては

943デフォルトの名無しさん (ブーイモ MMc9-Vv2X)2022/07/13(水) 19:23:52.41ID:F58RRgFgM
pdfってhtmlのようなテキストだったりする、意外と知られていない?

944デフォルトの名無しさん (ワッチョイ cd5f-RQFj)2022/07/13(水) 19:30:34.74ID:XpRrYrAX0
>>937
パワークエリ

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

946デフォルトの名無しさん (オイコラミネオ MM51-/dRU)2022/07/13(水) 20:29:31.07ID:RAwbutPOM
>>943
ここの連中にはよく知られている
pdfの解析はめちゃくちゃキツイ

947デフォルトの名無しさん (ワッチョイ cb8e-iSZE)2022/07/13(水) 20:29:35.01ID:+TgcJMJe0
>>943
馬鹿なら黙っていればいいのに
htmlじゃねーよ

948デフォルトの名無しさん (オイコラミネオ MM51-/dRU)2022/07/13(水) 20:34:43.23ID:RAwbutPOM
>>947
「のような」って書いてる
マークアップされてるって事ぐらい分かるでしょ

949デフォルトの名無しさん (ワッチョイ cb8e-iSZE)2022/07/13(水) 20:40:59.71ID:+TgcJMJe0
>>948
マークアップじゃないし
馬鹿は黙っていればいいのに

950デフォルトの名無しさん (オイコラミネオ MM51-/dRU)2022/07/13(水) 20:55:32.87ID:RAwbutPOM
馬鹿じゃねーよ
テキトーに言ってるだけだ

951デフォルトの名無しさん (ワッチョイ 355f-TkQT)2022/07/13(水) 21:36:26.72ID:bpgpUpce0
バイナリファイルをマークアップされてるって表現する人はじめてみた

952デフォルトの名無しさん (ワッチョイ cbda-VQN5)2022/07/13(水) 22:51:54.33ID:bvCBiwjA0
とはいっても取引先からのデータは大半がpdfだからなぁ

953デフォルトの名無しさん (スフッ Sd43-TkQT)2022/07/13(水) 23:54:44.21ID:vJ6Ng0OKd
そんなもん会社によるだろ
言えばExcelやCSVで送ってくれるとこも普通にある

954デフォルトの名無しさん (ワッチョイ 2302-ws48)2022/07/14(木) 00:12:44.49ID:X42JNt2t0
マーキングするために会社の上司が部下の女に触りまくってるじゃん

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

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

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

956デフォルトの名無しさん (オイコラミネオ MM51-/dRU)2022/07/14(木) 08:00:06.43ID:E22ufzJOM
今回のデータをcsvで頂戴したく存じます

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

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

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

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

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

960デフォルトの名無しさん (オイコラミネオ MM51-/dRU)2022/07/14(木) 08:21:48.07ID:E22ufzJOM
>>959
OCRか元データもらう以外の解決策があるなら、かなり聴きたい

961デフォルトの名無しさん (ラクッペペ MMcb-0W+b)2022/07/14(木) 08:24:09.60ID:lnbsEUJQM
OCRのがマシって回答出てるだろ
現実から目をそらすな

962デフォルトの名無しさん (ワッチョイ bd49-ezAM)2022/07/14(木) 08:49:50.07ID:vNge93QI0
最初に「CSVなどで依頼しても無理でした」とか書いてくれれば無駄な争いは避けたのかもな

963デフォルトの名無しさん (アウアウウー Sa09-2HoA)2022/07/14(木) 10:19:52.64ID:dxotV0yqa
>>947
++
>>949
++
>>951
ほんそれ

964デフォルトの名無しさん (スッププ Sd43-CglE)2022/07/14(木) 21:34:12.70ID:L5ignm6zd
A列のセルに列挙された複数単語の商品名から重複した単語のみを除くことは可能でしょうか?

A
1 RED BLUE APPLE
2 RED BLUE BANANA
3 RED BLUE GREEN ORANGE
4 RED BLUE YELLOW WHITE GRAPE
5 RED BLUE WHITE CHERRY

↑これらのデータを↓のように整形したいです。

B
1 APPLE
2 BANANA
3 GREEN ORANGE
4 YELLOW GRAPE
5 CHERRY

「RED BLUE APPLE」は同一セル内にスペースで区切られて入力されています。
データ量は1回あたり100行程度になります。セル内の単語、単語の数は毎回異なります。

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

965デフォルトの名無しさん (ワッチョイ 1baa-2HoA)2022/07/14(木) 21:34:41.90ID:TfuP8Uyl0
6進数?を通常の時刻表記に直す方法教えてください。
例)1.3→1:30
  2.45→2:45

966デフォルトの名無しさん (アウアウウー Sa09-/dRU)2022/07/14(木) 21:37:17.58ID:TLlcUFbPa
>>965
A1に時間が入っているとして
=TIME(INT(A1),A1-INT(A1),0)

967デフォルトの名無しさん (US 0Ha3-TUM9)2022/07/14(木) 21:41:07.21ID:0fmyum11H
>>955
コミュ力の定義はなんですか?典型的なインデックスは何ですか?

968デフォルトの名無しさん (スプッッ Sd43-iSZE)2022/07/14(木) 21:44:41.57ID:zzetjp0td
>>964
可能です。
はい、次。

969964 (ワッチョイ 2302-ws48)2022/07/14(木) 22:56:36.99ID:X42JNt2t0
>>968
ご回答いただきまして誠にありがとうございます。

970デフォルトの名無しさん (スッップ Sd43-jVDF)2022/07/14(木) 23:23:30.65ID:BkEIWbQgd
>>964
自分ならだけどこんな感じかと Mainのループは最大行数を取得してくれ _をスペースに置き換えてくれ
Sub_Main()
____Dim_i_As_Long
____For_i_=_1_To_5
________Dim_a_As_String
________a_=_Cells(i,_1).Value
________Dim_j_As_Long
________For_j_=_1_To_5
____________If_i_<>_j_Then
________________a_=_CutWord(a,_Cells(j,_1).Value)
____________End_If
________Next
________Cells(i,_2).Value_=_a
____Next
End_Sub

971デフォルトの名無しさん (スッップ Sd43-jVDF)2022/07/14(木) 23:23:50.53ID:BkEIWbQgd
Function_CutWord(a_As_String,_b_As_String)_As_String
____Dim_aa()_As_String
____aa_=_Split(a,_"_")
____Dim_bb()_As_String
____bb_=_Split(b,_"_")
____Dim_c_As_String
____c_=_""
____Dim_i_As_Long
____For_i_=_LBound(aa)_To_UBound(aa)
________Dim_j_As_Long
________For_j_=_LBound(bb)_To_UBound(bb)
____________If_aa(i)_=_bb(j)_Then
________________Exit_For
____________End_If
________Next
________If_j_>_UBound(bb)_Then
____________If_c_<>_""_Then
________________c_=_c_&_"_"
____________End_If
____________c_=_c_&_aa(i)
________End_If
____Next
____CutWord_=_c
End_Function

972デフォルトの名無しさん (ワッチョイ fdce-TkQT)2022/07/14(木) 23:43:51.22ID:qWN4wD1T0

973デフォルトの名無しさん (ワッチョイ cbda-VQN5)2022/07/14(木) 23:52:28.92ID:fadaSACN0
気持ちわりぃなそのコード

974デフォルトの名無しさん (アウアウウー Sa09-/dRU)2022/07/15(金) 00:00:11.50ID:9RgIX2Zba
>>973
どの辺りが?
それとも気持ち悪いって言いたかっただけ?

975デフォルトの名無しさん (アウアウウー Sa09-MhTr)2022/07/15(金) 00:30:48.57ID:1ECLhEg6a
なんでスペースがアンダーバーなんだとは思うな
俺も見た目が受け付けなかったわ

976デフォルトの名無しさん (スプッッ Sd43-iSZE)2022/07/15(金) 00:48:33.55ID:kd+ZBNkRd
いや、そもそも自作自演だろ

977デフォルトの名無しさん (ワッチョイ fdce-TkQT)2022/07/15(金) 01:18:26.31ID:mFCZ39Ni0
Sub Main()
  Dim a As String
  Dim i As Long
  Dim j As Long
  For i = 1 To 5
    a = Cells(i, 1)
    For j = 1 To 5
      If i <> j Then a = CutWord(a, Cells(j, 1))
    Next
    Cells(i, 2) = a
  Next
End Sub

Function CutWord(a As String, b As String) As String
  Dim aa() As String
  Dim bb() As String
  Dim c As String
  Dim i As Long
  aa = Split(a, " ")
  bb = Split(b, " ")
  For i = LBound(aa) To UBound(aa)
    Dim j As Long
    For j = LBound(bb) To UBound(bb)
      If aa(i) = bb(j) Then Exit For
    Next
    If j > UBound(bb) Then
      If c <> "" Then c = c & " "
      c = c & aa(i)
    End If
  Next
  CutWord = c
End Function

978964 (スッップ Sd43-CglE)2022/07/15(金) 02:31:06.28ID:bSLom3XEd
早速ご回答いただいた皆様、ありがとうございました!
ほぼ思い通りの結果を得ることができました。

ちなみにですが、
例えばA6に「DOG CAT RABBIT COW BEAR」というデータがある場合、
各単語がどれとも重複していないため「DOG CAT RABBIT COW BEAR」そのまま5単語が残ります。

各データのユニークな単語を最小数で残すことは可能でしょうか?
下記のような形です。

A
1 RED BLUE APPLE
2 RED BLUE BANANA
3 RED BLUE GREEN ORANGE
4 RED BLUE YELLOW WHITE GRAPE
5 RED BLUE WHITE CHERRY
6 DOG CAT RABBIT COW BEAR



B
1 APPLE
2 BANANA
3 GREEN ORANGE
4 YELLOW GRAPE
5 CHERRY
6 DOG

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

979デフォルトの名無しさん (ワンミングク MMa3-p0Nn)2022/07/15(金) 02:36:26.14ID:WFW52ORLM
いつものあいつだぞ

980デフォルトの名無しさん (ワッチョイ fdce-TkQT)2022/07/15(金) 06:01:47.46ID:mFCZ39Ni0
最小限の定義が不明

981デフォルトの名無しさん (スフッ Sd43-TkQT)2022/07/15(金) 07:03:30.04ID:ymO8mssad
Sub Main()
  Dim a As String
  Dim i As Long, j As Long
  Dim last As Long
  last = Cells(Rows.Count, 1).End(xlUp).Row
  For i = 1 To last
    a = Cells(i, 1)
    For j = 1 To last
      If i <> j Then a = CutWord(a, Cells(j, 1))
    Next j
    Cells(i, 2) = a
  Next i
End Sub

Function CutWord(a As String, b As String) As String
  Dim aa() As String
  Dim bb() As String
  Dim c As String
  Dim i As Long, j As Long
  aa = Split(a, " ")
  bb = Split(b, " ")
  For i = LBound(aa) To UBound(aa)
    For j = LBound(bb) To UBound(bb)
      If aa(i) = bb(j) Then Exit For
    Next j
    If j > UBound(bb) Then c = c & aa(i) & " "
  Next i
  CutWord = Trim(c)
End Function

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

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

983デフォルトの名無しさん (アウアウウー Sa09-/dRU)2022/07/15(金) 07:47:41.51ID:9RgIX2Zba
value取るのは改悪で草

984デフォルトの名無しさん (アウアウウー Sa09-DHlW)2022/07/15(金) 08:08:12.42ID:DqNyEc18a
>>964
複数回現れる単語を削除すればいいのか?
Sub X964()
Dim Sheet As Worksheet: Set Sheet = ...
Dim Dictionary As Object: Set Dictionary = CreateObject("Scripting.Dictionary")
Dim LastRow As Long: LastRow = SheetSheet.Cells(Rows.Count, "A").End(xlUp).Row
Dim Row As Long
For Row = 1 To LastRow
Dim Word As Variant
For Each Word In Split(Sheet.Cells(Row, "A").Value, " ")
If Dictionary.Exists(Word) Then
Dictionary(Word) = Dictionary(Word) + 1
Else
Dictionary.Add Word, 1
End If
Next
Next
For Row = 1 To LastRow
Dim Uniques As String: Uniques = ""
For Each Word In Split(Sheet.Cells(Row, "A").Value, " ")
If 1 < Dictionary(Word) Then
If Uniques = "" Then
Uniques = Word
Else
Uniques = Uniques & " " & Word
End If
End If
Next
Sheet.Cells(Row, "B").Value = Uniques
Next
End Sub

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

986デフォルトの名無しさん (ワッチョイ cbda-VQN5)2022/07/15(金) 08:49:49.31ID:pxeFAKZo0
そのコードカッケェ!

987デフォルトの名無しさん (スフッ Sd43-TkQT)2022/07/15(金) 09:42:45.28ID:D6klNH8hd
Sub sample3()
  Dim r As Long
  Dim z As Long '最終行
  Dim s As String '全データ
  Dim a() As String '単語リスト
  Dim i As Long
  z = Cells(Rows.Count, 1).End(xlUp).Row
  For r = 1 To z
    Cells(r, 2) = Cells(r, 1)
    s = s & Cells(r, 1) & " "
  Next r
  a = Split(s, " ")
  For i = LBound(a) To UBound(a)
    If Len(s) - Len(a(i)) > Len(Replace(s, a(i), "")) Then '2回以上出てくるか
      For r = 1 To z
        Cells(r, 2) = Trim(Replace(Cells(r, 2), a(i), "")) '各セルから削除
      Next r
    End If
  Next i
End Sub

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

989デフォルトの名無しさん (スプッッ Sd43-iSZE)2022/07/15(金) 13:22:47.81ID:kd+ZBNkRd
ここでRuby馬鹿がRubyではこうなるとか書くのは見えている

990デフォルトの名無しさん (ワッチョイ 4bda-TkQT)2022/07/15(金) 19:00:37.71ID:f/pTHFXb0
オレンジ色のオレンジはどうなの?

991デフォルトの名無しさん (ワッチョイ cbda-VQN5)2022/07/15(金) 19:14:37.65ID:pxeFAKZo0
どんなに良コード書いても難癖付けられるのがこのスレ

992デフォルトの名無しさん (ワッチョイ 05da-k1yI)2022/07/16(土) 02:37:29.28ID:hVvvoOFI0
userformをshowした直後にunloadするとexcelが落ちるのは何とかならんかのぉ
hideじゃだめなんじゃunloadじゃないと

993デフォルトの名無しさん (ワッチョイ 9d5f-GsVe)2022/07/16(土) 07:52:34.81ID:1SMMBEmo0
UserForm1.Show vbModeless
Unload UserForm1

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

994デフォルトの名無しさん (ワッチョイ 5a42-PUxa)2022/07/16(土) 08:52:29.38ID:eHBMNsDF0
逆になんでhideじゃダメなの

995デフォルトの名無しさん (ワッチョイ 912f-cIkS)2022/07/16(土) 13:26:34.40ID:NLVpHfZz0
とりあえずEXCELが落ちるっていうコードと環境出せ
話はそれからだ

996デフォルトの名無しさん (ワッチョイ 762c-lpz1)2022/07/16(土) 18:00:44.38ID:2WLM14wy0
>>978
Ruby で作った

require "csv"

input_str = <<"EOT"
RED,BLUE,APPLE
RED,BLUE,BANANA
RED,BLUE,GREEN,ORANGE
RED,BLUE,YELLOW,WHITE,GRAPE
RED,BLUE,WHITE,CHERRY
DOG,CAT,RABBIT,COW,BEAR
EOT

csv = CSV.new( input_str )
input_ary = csv.read # 2次元配列

# 各単語の出現回数を数える。Hash の初期値は、0
hash = input_ary.each_with_object( Hash.new( 0 ) ) { |row, hash|
row.each { |word| hash[ word ] += 1 }
}

# 出現回数が2以上の単語を削除する
input_ary.map! { |row|
row.delete_if { |word| hash[ word ] >= 2 }
row
}

# 2次元配列を、CSV 文字列に変換する
csv_str = input_ary.map( &:to_csv ).join
puts csv_str

997デフォルトの名無しさん (アウアウウー Sa39-eHP4)2022/07/16(土) 19:45:04.74ID:vYu+PcKIa
>>996
廃止決定した言語じゃん

998デフォルトの名無しさん (ワッチョイ 5ada-XFSu)2022/07/17(日) 00:22:00.69ID:lEW2LcQY0
あんたら色んな言語を習得していてエリートなんだな?
5ちゃんねるなんかにいてもったいねーわ

999デフォルトの名無しさん (ワッチョイ 05da-k1yI)2022/07/17(日) 02:44:22.32ID:rPHWMq+g0
>>995
993と同じ、2行だけ
エクセルは2013

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

1000デフォルトの名無しさん (ワッチョイ 5a63-4HbS)2022/07/17(日) 04:50:23.78ID:fLi6s9i70
こいつの書くコード、rubyとしてもクソコードなのがほんとひどい


lud20230130004609ca
このスレへの固定リンク: http://5chb.net/r/tech/1651339421/
ヒント:5chスレのurlに http://xxxx.5chb.net/xxxx のようにbを入れるだけでここでスレ保存、閲覧できます。

TOPへ TOPへ  

このエントリをはてなブックマークに追加現在登録者数177 ブックマークへ


全掲示板一覧 この掲示板へ 人気スレ | Youtube 動画 >50 >100 >200 >300 >500 >1000枚 新着画像

 ↓「Excel VBA 質問スレ Part76 YouTube動画>3本 ->画像>10枚 」を見た人も見ています:
Excel VBA 質問スレ Part67
Excel VBA 質問スレ Part68
Excel VBA 質問スレ Part66
Excel VBA 質問スレ Part61
【RIFT】 Rift: Planes of Telara 質問スレ Part5
Counter-Strike: Global Offensive 質問スレ Part3
【TESO】The Elder Scrolls Online 質問スレ Part27
【TESO】The Elder Scrolls Online 質問スレ Part24
【PS/XB】Elden Ring エルデンリング 質問スレ Part3
【TESO】The Elder Scrolls Online 質問スレ Part46
【TESO質問】The Elder Scrolls Online 質問スレ Part1
【TESO】The Elder Scrolls Online 質問スレ Part25 [無断転載禁止]
【TESO】The Elder Scrolls Online 質問スレ Part6 [無断転載禁止]
【TESO】The Elder Scrolls Online 質問スレ Part15 [無断転載禁止]
【PoE】 Path of Exile 質問スレ part22
【PoE】 Path of Exile 質問スレ part23
【PoE】 Path of Exile 質問スレ part14
【PoE】 Path of Exile 質問スレ part33
foobar2000 質問スレ Part36
【MGO】METAL GEAR ONLINE 質問スレ Part14
【PoE】 Path of Exile 質問スレ part15 [無断転載禁止]
【ソロ専用】アナザーエデン 時空を超える猫 質問スレ 25匹目 【アナデン】
【ソロ専用】アナザーエデン 時空を超える猫 質問スレ 36匹目 【アナデン】
【ソロ専用】アナザーエデン 時空を超える猫 質問スレ 33匹目 【アナデン】
【ソロ専用】アナザーエデン 時空を超える猫 質問スレ 8匹目 【アナデン】
【ソロ専用】アナザーエデン 時空を超える猫 質問スレ 39匹目 【アナデン】
【ソロ専用】アナザーエデン 時空を超える猫 質問スレ 30匹目 【アナデン】
【PC】Terraria 質問スレ Part17
【FFBE】 FINAL FANTASY BRAVE EXVIUS 質問スレ6
PSVita 質問スレ part1 [無断転載禁止]
au Xperia Z1 SOL23 質問スレ part3
【FFBE】 FINAL FANTASY BRAVE EXVIUS 質問スレ7 [無断転載禁止]
Florensia -フローレンシア- 質問スレ Part1
Tasker 質問スレ 17
【臨】 質問スレ 【床】
d払い 質問スレ Part1
ChMate 質問スレ Part55
ポケモンGo 質問スレ Lv.59
Warframe 質問スレ RANK32
メギド72 質問スレ Part515
ポケモンGo 質問スレ Lv.66
ポケモンGO 質問スレ Lv35
ポケモンGo 質問スレ Lv.40
ポケモンGo 質問スレ Lv.64
ポケモンGo 質問スレ Lv.65
ポケモンGo 質問スレ Lv.44
ポケモンGo 質問スレ Lv.68
ポケモンGO 質問スレ Lv27
Fallout4 PC 質問スレ 25cap
三国ヒーローズ 質問スレ Part6
Tree of savior 質問スレ Part4
スター・ウォーズ 質問スレ EP9
au by KDDI 質問スレ Part.234
スター・ウォーズ 質問スレ EP6
au by KDDI 質問スレ Part.240
【PC】Warframe 質問スレ RANK41
【PC】Warframe 質問スレ RANK57
スター・ウォーズ 質問スレ EP5
Tree of Savior 質問スレ Part39
【PC】Warframe 質問スレ RANK61
Fate/Grand Order 質問スレ Lv.22
Tree of Savior 質問スレ Part25
【PC】Cyberpunk 2077 質問スレ Part1
ポケモンGO 質問スレ Lv26 [無断転載禁止]
【プラン】docomo 質問スレ part6【料金】
06:42:29 up 7:46, 0 users, load average: 8.38, 8.87, 9.05

in 0.088641166687012 sec @0.088641166687012@0b7 on 011320