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


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

Excel VBA 質問スレ Part69



1 名前:デフォルトの名無しさん mailto:sage [2020/12/13(日) 00:22:23.67 ID:Fd224klc0.net]
!extend:checked:vvvvv:1000:512
↑同じ内容を2行貼り付ける

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

※前スレ
Excel VBA 質問スレ Part68
https://mevius.5ch.net/test/read.cgi/tech/1598756127/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured

2 名前:デフォルトの名無しさん mailto:sage [2020/12/13(日) 00:40:59.48 ID:3UupZiaXa.net]
いちおつ

3 名前:デフォルトの名無しさん mailto:sage [2020/12/13(日) 02:05:02.07 ID:8gJ86P5y0.net]
3次元配列

4 名前:デフォルトの名無しさん mailto:sage [2020/12/13(日) 09:38:15.23 ID:d7KSZ/+i0.net]
>>1

>>991です
スレ変わったのでわかる人お願いします

Excel関数のHyperLinkの処理を置き換え(APIHookのような処理)はどうすればできますか?

目的としてはHyperLink関数では一部のURLの表示が遅い(Excel自体のタイムアウト待ち?)ので
直接「CreateObject("WScript.Shell").Run URL文字列」の処理をさせたいのです
関数名はHyperLinkのままにしたいのでAPIHookのような処理ができればいいのですが

5 名前:デフォルトの名無しさん [2020/12/13(日) 09:44:53.59 ID:QAnzRvam0.net]
Office田中のおじいちゃんはなぜ突然Youtubeの更新が止まったの?

6 名前:デフォルトの名無しさん mailto:sage [2020/12/13(日) 09:58:52.02 ID:8gJ86P5y0.net]
ヒント:最初からコメント欄封鎖で察し

7 名前:デフォルトの名無しさん mailto:sage [2020/12/13(日) 10:04:09.41 ID:8gJ86P5y0.net]
他のExcel YouTuberを遠回しでディスったり他の講師を素人呼ばわりしてるから警告されたとか??

8 名前:デフォルトの名無しさん [2020/12/13(日) 18:01:59.62 ID:cE4yrWjc0.net]
田中はクソみたいなコードを広めるのやめて欲しい

9 名前:デフォルトの名無しさん mailto:sage [2020/12/13(日) 18:27:45.70 ID:+kVWWkIy0.net]
>>8
俺は見てないがもし糞みたいなコードがあるなら本人に「ここの部分はこうした方がいい」と伝えるか
正しい糞ではないコードを自分で広めるなりすればいいんじゃね

10 名前:デフォルトの名無しさん mailto:sage [2020/12/13(日) 20:21:47.50 ID:RLxnk1oS0.net]
>>9
サンプルにバグを見つけて伝えたことあるけど無視された
そのまま放置



11 名前:デフォルトの名無しさん mailto:sage [2020/12/13(日) 22:55:06.01 ID:8gJ86P5y0.net]
質問掲示板(多分知恵袋)にVBAの質問してもちゃんと答えられる人は少ないですキリッ
なぜなら彼らはVBの上級者であってエクセル上級者では無いからです!ドヤッ

これ、マジであの人が発言したからね。
ここの住人の方が詳しいと思われ

12 名前:デフォルトの名無しさん mailto:sage [2020/12/14(月) 12:29:36.45 ID:7J3AXcIkH.net]
なんとかのネタ帳の方が分かりやすい

13 名前:デフォルトの名無しさん [2020/12/14(月) 13:10:44.97 ID:v8F0AU2W0.net]
あのExcelしか知らないのが超糞偉そうにしてるのを見るのもショーみたいで面白い。
周りに初心者がたくさんいるのだろうな。
そして小さなExcelの世界しか知らないから天狗のようになって自分が神であるかのように勘違いしてる。

14 名前:デフォルトの名無しさん [2020/12/14(月) 15:02:42.82 ID:SoqrBv/c0.net]
Excelはすべての会社員が使っているので、会社員の頂点に立つ男!みたいな気分なんだろな。

15 名前:デフォルトの名無しさん mailto:sage [2020/12/14(月) 18:25:01.11 ID:+U5ugI250.net]
ラーメン屋のオヤジがウチのラーメンが世界一だと言ってるようなもんだろ
ほっとけばいいのに

16 名前:デフォルトの名無しさん mailto:sage [2020/12/14(月) 20:45:35.63 ID:1UTk6KL+0.net]
一応、MS本社に認められたんだよね日本人初のMVP受賞とか
間違っていたらすまそ

17 名前:デフォルトの名無しさん [2020/12/14(月) 22:49:22.85 ID:SoqrBv/c0.net]
じゃあ世界一って事か。

18 名前:デフォルトの名無しさん mailto:sage [2020/12/14(月) 23:00:48.78 ID:1UTk6KL+0.net]
どーなんだろ??
あの人、あまり手の内見せないぽいから
最終的には自分で考える事が大事と良く言ってるし。

MSからマクロ作成の依頼されたことあるらしいし。

19 名前:デフォルトの名無しさん mailto:sage [2020/12/15(火) 18:46:27.43 ID:/G3Q8qXw0.net]
日本人初=世界一 ってのはどうかな
普通にできる人より詳しいのは認めるが

20 名前:デフォルトの名無しさん mailto:sage [2020/12/16(水) 05:13:46.62 ID:OBuLFyvl0.net]
本人来てるなw



21 名前:デフォルトの名無しさん mailto:sage [2020/12/16(水) 06:08:28.27 ID:5QiC3fDMx.net]
vbaでホットキーの下線を引くのってどうやるの?
captionに(&Q)って入れたらそのまま"(&Q)"って表示されてしまうんだが

22 名前:デフォルトの名無しさん mailto:sage [2020/12/16(水) 18:46:12.78 ID:T3OIGsjX0.net]
フォントかも?

23 名前:デフォルトの名無しさん mailto:sage [2020/12/17(木) 15:35:36.14 ID:vxWFGGLL0.net]
>>8
まぁ一見糞だけど知りたいところをスパッと見て
取れるように組んであるみたいだね
あれを素晴らしいと見るのは初級者
糞と見るのは中級者
ああ、仕方なかったんだろうなぁと見るのが
上級者だろうね

24 名前:デフォルトの名無しさん mailto:sage [2020/12/17(木) 17:44:01.81 ID:H5UCfbuzp.net]
具体的なコードもなしにそんなことを言ってみても意味なくない?

25 名前:デフォルトの名無しさん mailto:sage [2020/12/17(木) 18:18:37.46 ID:HhGRrbK00.net]
具体的に行動で示さなければ意味がないとも言えなくもないな

26 名前:デフォルトの名無しさん mailto:sage [2020/12/17(木) 19:29:42.36 ID:fIVTHnC60.net]
意味を具体的に言ってくれないと行動で示したことにならなくもないな

27 名前:デフォルトの名無しさん mailto:sage [2020/12/17(木) 21:10:06.33 ID:HhGRrbK00.net]
意味なんかなくてもいいな、いい意味で

28 名前:デフォルトの名無しさん mailto:sage [2020/12/17(木) 23:03:41.69 ID:xFG/tErCd.net]
示す行動しない意味が言って具体的にない

29 名前:デフォルトの名無しさん mailto:sage [2020/12/18(金) 00:01:06.37 ID:pmAsW6cw0.net]
VBAのソースからエクセルを開き、
ある一つのセルに
メールアドレスを2つ
;でつないで入れようとしています。

動作中にデバッガで止めて見たときは
2つとも入ってるのに
処理終了後に保存したファイルを開くと
最初の一つしか入ってないです。
;以降が消えています。

保存処理はコレです。
Wb.SaveAs fullPath & "\" & newfilename, FileFormat:=xlWorkbookDefault

どうすればメールアドレスを2つとも保存できるでしょうか。

セルに手入力して保存して開きなおした場合は
2つとも残っています。

30 名前:デフォルトの名無しさん mailto:sage [2020/12/18(金) 05:56:32.93 ID:MHBgXHLC0.net]
>>29
その保存処理の行にブレークポイントを仕掛けて、保存直前のセルの内容を確認した?



31 名前:デフォルトの名無しさん mailto:sage [2020/12/18(金) 11:37:45.35 ID:zcOsQbRrx.net]
シートに多数配置されたフォームボタンの余白を一括で変えたいんですが
これはどこのプロパティに入ってるんでしょうか?

図形ボタンならばTextFrameにありますが、
フォームコントロールボタンには無いので困っています

32 名前:デフォルトの名無しさん mailto:sage [2020/12/18(金) 12:18:56.87 ID:zcOsQbRrx.net]
自己解決?
階層のかなり深いところあって正しいかどうかわからないけれど
目的のmargintopは変えられたのでよしとします

33 名前:デフォルトの名無しさん mailto:sage [2020/12/18(金) 21:20:27.27 ID:2qJVkyjrr.net]
>>29
fullPathの中身は確認した?

34 名前:デフォルトの名無しさん [2020/12/18(金) 21:24:38.24 ID:d7JsJWQH0.net]
>>30
してませんでした
してみたら上書きしちゃってことが発覚
すみませんでした

35 名前:デフォルトの名無しさん mailto:sage [2020/12/18(金) 21:26:41.06 ID:tZwK+Ox70.net]
Fullい、アルPathの中身〜 

36 名前:デフォルトの名無しさん mailto:sage [2020/12/18(金) 21:31:55.70 ID:2qJVkyjrr.net]
>>35
隠れてー

37 名前:デフォルトの名無しさん mailto:sage [2020/12/18(金) 22:42:55.21 ID:wJm+i3S50.net]
2013でセキュリティがウンコとか言われずにシートにブラウザ埋め込む方法ない?
2003使えってのは無しで。

38 名前:デフォルトの名無しさん mailto:sage [2020/12/18(金) 22:44:42.88 ID:wJm+i3S50.net]
あとフォーム使えってのも無しで。
フォームをシートに埋め込めるならフォームでも良いけど。

39 名前:デフォルトの名無しさん mailto:sage [2020/12/19(土) 08:46:18.20 ID:I2l+BhY+0.net]
正規表現使ったら複数あったIf文がひとつにまとまって便利だわ

40 名前:デフォルトの名無しさん mailto:sage [2020/12/19(土) 09:12:21.18 ID:61b7WmYd0.net]
>>37
Activex コントロールの追加



41 名前:デフォルトの名無しさん [2020/12/19(土) 09:13:26.65 ID:XKRgJ0KSM.net]
性器表現使ったら警察に通報されたわ

ω

42 名前:デフォルトの名無しさん [2020/12/19(土) 09:17:51.58 ID:yZxXMpJa0.net]
ろくでなし子さんか。

43 名前:デフォルトの名無しさん mailto:sage [2020/12/19(土) 09:18:25.16 ID:61b7WmYd0.net]
あ、フォームしか使えんのか、やっぱ無理

44 名前:デフォルトの名無しさん mailto:sage [2020/12/19(土) 10:42:01.25 ID:bPXc2una0.net]
vbsの質問スレってありませんか?

45 名前:デフォルトの名無しさん mailto:sage [2020/12/19(土) 12:26:52.95 ID:/kQ9IsbnM.net]
vbsってなぁに?

46 名前:デフォルトの名無しさん mailto:sage [2020/12/19(土) 13:55:17.82 ID:B7wez7Ce0.net]
vibes

47 名前:デフォルトの名無しさん mailto:sage [2020/12/19(土) 14:26:52.27 ID:apUbT12I0.net]
>>44
馬鹿は死ね

48 名前:デフォルトの名無しさん mailto:sage [2020/12/19(土) 15:28:53.56 ID:0faaSRGa0.net]
>>39
どんな感じ?興味ある。
エクセルで式長いと読む気なくすから

49 名前:デフォルトの名無しさん mailto:sage [2020/12/19(土) 19:29:28.19 ID:alzND/kd0.net]
新しく入った部署に一連の処理をまとめた動作が一時間かかるマクロがあったのですが
途中でたまにALTキーを押して動作が止まってないかみたほうが良いといわれましたが
ALTキーにそういう使い方がありますか?

コードを見ると2つのブック間での大量の転記がメインでしたがselectで行ったり来たりしてるのと
do eventsが目につくのと画面更新が停止になっていないのが気になりました

50 名前:デフォルトの名無しさん mailto:sage [2020/12/19(土) 19:38:18.28 ID:xrHuR8aPM.net]
一から作り直してやれよ



51 名前:デフォルトの名無しさん mailto:sage [2020/12/19(土) 19:39:14.70 ID:61b7WmYd0.net]
>>49
スクリーンセーバーとかで画面が消えているときに画面を表示させるってことじゃね
気になるなら言ったやつに聞けよ

52 名前:デフォルトの名無しさん mailto:sage [2020/12/19(土) 19:42:46.83 ID:LkhtCrGt0.net]
途中で止まってないか確認が必要なツールってなんだそれww

53 名前:デフォルトの名無しさん mailto:sage [2020/12/19(土) 19:46:02.83 ID:61b7WmYd0.net]
SHIFTだった、ALTはメニューのショートカットが出るので固まっているかどうかわかるんだな

54 名前:デフォルトの名無しさん mailto:sage [2020/12/19(土) 19:46:14.78 ID:KLAxshEw0.net]
関数式びっしりのリスト表はINDIRECT関数でシート名を21年度にしたらまともに動かないようにしといた
俺の最後のあがき

55 名前:デフォルトの名無しさん mailto:sage [2020/12/19(土) 19:50:43.64 ID:alzND/kd0.net]
オフィスがアップデートされてからめちゃめちゃ重くなったらしくて(多分2010以前から2016)
コードは流し見してみてもactivate、selectの連続なので書き方としてはダメなのは分かるのですが
オフィスのアップデートでマクロの処理時間に影響してるのはどの辺りかとおもってまして

56 名前:デフォルトの名無しさん mailto:sage [2020/12/19(土) 19:55:12.16 ID:alzND/kd0.net]
>>53
なるほど!ありがとうございます

57 名前:デフォルトの名無しさん mailto:sage [2020/12/19(土) 19:58:20.64 ID:xrHuR8aPM.net]
転記マクロなんて本来速いはずなんだがな
数万行のVLOOKとかならともかく

58 名前:デフォルトの名無しさん mailto:sage [2020/12/19(土) 19:59:38.59 ID:LkhtCrGt0.net]
vlookは速い
だめなのはコピペ

59 名前:デフォルトの名無しさん mailto:sage [2020/12/19(土) 20:05:32.11 ID:4RWx2e/N0.net]
メモリが足りてへんだけやろ
200x使ってたっていつのPCやねん

60 名前:デフォルトの名無しさん mailto:sage [2020/12/19(土) 20:06:11.88 ID:xy5yRKkZ0.net]
>>57
作り方による
初心者はセル一つ一つに入れていくような処理を普通に作ったりする



61 名前:デフォルトの名無しさん mailto:sage [2020/12/19(土) 20:14:37.97 ID:alzND/kd0.net]
>>57
コード読みのしんどくて処理を追うの断念しました

62 名前:デフォルトの名無しさん mailto:sage [2020/12/19(土) 20:24:14.95 ID:xrHuR8aPM.net]
>>58
VLOOKは時間かかるよ
参照先が数万行あるからね
そういう前提

63 名前:デフォルトの名無しさん mailto:sage [2020/12/19(土) 20:55:46.21 ID:61b7WmYd0.net]
別ファイルへのリンクは遅い

64 名前:デフォルトの名無しさん mailto:sage [2020/12/20(日) 00:11:18.42 ID:sV78pExa0.net]
>>55
ネッワークがヘボだと、ファイルの読み書きで止まるのも遅くなるのも普通にある。

65 名前:デフォルトの名無しさん [2020/12/20(日) 00:39:42.92 ID:j7lOdAJ40.net]
>>64
ネットワークフォルダにあるファイルの読み書きという意味でよいですか?

66 名前:デフォルトの名無しさん mailto:sage [2020/12/20(日) 07:19:21.13 ID:9C3kHidD0.net]
>>49
DoEventsとかScreenUpdatingの停止は多分普段コードに触れない人も操作する事を想定しているのだと思う。
より時間がかかったとしても画面に変化があった方が時間が短く感じるらしいよ。

67 名前:デフォルトの名無しさん [2020/12/20(日) 08:42:07.93 ID:j7lOdAJ40.net]
>>66
そういうこともあるのですね

68 名前:デフォルトの名無しさん mailto:sage [2020/12/20(日) 08:42:23.86 ID:sV78pExa0.net]
>>65
そう。
読み込み途中で止まっちゃって、キャンセルボタンを押すと動きだしたり。
逆に、あーまた止まったと思ってキャンセル押すと、読み込みに失敗することも。(この場合止まってるのではなく遅いだけ)
ネットワーク関係ないなら、xlsがxlsxになった影響かも。
zip圧縮してるせいで、容量が大きいと遅くなる。

69 名前:デフォルトの名無しさん [2020/12/20(日) 09:05:36.29 ID:j7lOdAJ40.net]
>>68
私は入ったばっかりのですが確かにネットワークのフォルダの挙動がおかしいと感じてはいます
フォルダに入ろうとすると権限メッセージが出て弾かれる、二回目はすんなり入れるなど

2、3年前にオフィス移転(システム的にも変更?)してから動作が不安定らしいです

こういう場合必要ファイルを一旦ローカルに保存してから処理を実行などの方が早いかもしれませんね

70 名前:デフォルトの名無しさん mailto:sage [2020/12/20(日) 10:43:45.19 ID:Ac0m1tee0.net]
コードの各所にdebug.printで処理名と時間出すようにしてイミディエイトウィンドウが見える状態でマクロ実行したらどこで固まってるか分かると思うけど



71 名前:デフォルトの名無しさん mailto:sage [2020/12/20(日) 12:10:16.68 ID:nJ21/AVE0.net]
Debug.PrintってVBEを開かないと見えないじゃん
素人対策ならどっかのセルの数字とか色を適当に変化させた方がいいかも

72 名前:デフォルトの名無しさん mailto:sage [2020/12/20(日) 12:59:56.30 ID:CqvjoJZt0.net]
今度はそこでバグるんですね

73 名前:デフォルトの名無しさん [2020/12/20(日) 13:14:04.40 ID:6+Wk6JOS0.net]
今度はそこでハゲるんですよ

74 名前:デフォルトの名無しさん mailto:sage [2020/12/20(日) 23:10:55.45 ID:gTVP+0oL0.net]
Application.StatusBar がとっても便利

75 名前:デフォルトの名無しさん mailto:sage [2020/12/21(月) 11:54:50.24 ID:bZ3GkeZc0.net]
全体の処理数がわかるなら、残り(未処理)が何件あるかを表示すると多少イライラが解消される

76 名前:デフォルトの名無しさん [2020/12/21(月) 12:30:22.40 ID:uS6jpmSaM.net]
途中でクリップボード使ったら
卑猥な言葉が混入しまちた!

77 名前:デフォルトの名無しさん mailto:sage [2020/12/22(火) 00:13:23.28 ID:lruv7PIH0.net]
ミスターTか。この人の経営してる会社、実態が無いと聞いたが
娘と親子でExcelのセミナー会社経営らしいが

78 名前:デフォルトの名無しさん mailto:sage [2020/12/22(火) 03:50:30.98 ID:rWw9Je1ea.net]
娘何歳?

79 名前:デフォルトの名無しさん mailto:sage [2020/12/22(火) 06:18:34.01 ID:NAGl+KXI0.net]
すみません教えてください
Option Explicit
Private Sub UserForm_Initialize()
Dim r As Long
ComboBox1.ColumnCount = 2
For r = 1 To Range("A" & Rows.Count).End(xlUp).Row
ComboBox1.AddItem Range("A" & r).Value
ComboBox1.List(r - 1, 1) = r 'リストの2列目にシートの何行目かを記憶
Next
End Sub

Private Sub ComboBox1_Change()
Dim r As Long
Dim c As Integer
r = ComboBox1.List(ComboBox1.ListIndex, 1) '選択したリストの2列目(シートの何行目か)
ComboBox2.Clear
For c = 2 To Cells(r, Columns.Count).End(xlToLeft).Column
ComboBox2.AddItem Cells(r, c).Value
Next
End Sub

上記コードだとシート1のデータがコンボボックスに反映されるんですが
シート2のデータを反映したくて色々試したんですが解決できず
詳しい方がいましたら教えてください

80 名前:デフォルトの名無しさん mailto:sage [2020/12/22(火) 07:33:43.93 ID:mqeQ3pSMd.net]
単にRangeやCellsと書いたのではアクティブなシートしか参照しない
複数シートを使わない場合であっても単純なエラーを防ぐ意味でシートを指定したほうがいいと思いますよ



81 名前:デフォルトの名無しさん mailto:sage [2020/12/22(火) 07:51:09.62 ID:k2dAsx4kx.net]
名前付きセルを参照する時、Range("名前")だけだとVBEから実行するときに
他のブックがアクティブになっていて"名前"のセルが無いエラーが出るんで
ThisWorkbook を指定したいんですが、RangeオブジェクトがSheetにしか無いんで
名前指定しているにも関わらず
ThisWorkbook.Sheets("sheet1").Range("名前")
みたいにするしか無いんですが

これシート指定の部分を任意にすることは出来ないんでしょうか?

82 名前:デフォルトの名無しさん mailto:sage [2020/12/22(火) 07:54:48.95 ID:asPFS5mN0.net]
出来る出来ないで聞かれたら出来る

83 名前:デフォルトの名無しさん mailto:sage [2020/12/22(火) 10:21:28.79 ID:Lmg+KcEvM.net]
ツリーからシートを選んでプロパティからオブジェクト名をよく見てみると良いよ。シート名とオブジェクト名が切り離されてる事に気付くから。
そしたら【オブジェクト名】.Cells([RowIndex],[ColumnIndex])とか【オブジェクト名】.Range(“名前”)とかでやってみ。

84 名前:デフォルトの名無しさん mailto:sage [2020/12/22(火) 10:41:24.56 ID:kzqT97dS0.net]
>>81
あとになって自分のコードが理解できなくなるに1ガバチョ

85 名前:デフォルトの名無しさん mailto:sage [2020/12/22(火) 14:37:29.68 ID:sqvmca9RM.net]
>>81
別にそれでいいじゃんよ

86 名前:デフォルトの名無しさん mailto:sage [2020/12/22(火) 14:44:06.90 ID:sqvmca9RM.net]
>>79
そもそもシート1とかシート2とか何を言ってるんだ?

シート1というシート名のシートがあるなら、
Sheet("シート1")と指定すればいいだけだろうに、それがプログラム中に無いぞ。

87 名前:デフォルトの名無しさん mailto:sage [2020/12/22(火) 16:07:51.53 ID:wg95/wQDd.net]
いつものあいつがコピペしただけのものでは?

88 名前:デフォルトの名無しさん mailto:sage [2020/12/22(火) 20:57:51.79 ID:zqIv26bj0.net]
質問です。

シート 1〜 最終シート全ての
「B列の14行目」 から
「B列の値のあるまとまりの最終セルの一つ前まで」
のセルの値をクリアしたいです。

下のコードで試してみたのですが、アプリケーション定義またはオブジェクト定義のエラーと出てしまいます。
VBA覚え始めたばかりの完全初心者でどこが違うのか分からないです
すみませんが、教えてもらえませんでしょうか

Sub test()
G = Sheets.Count

For H = 1 To G
Sheets(H).Range(Range("B14"), Range("B14").End(xlDown).Offset(-1, 0)).ClearContents
Next

End Sub

89 名前:デフォルトの名無しさん mailto:sage [2020/12/22(火) 21:29:14.42 ID:sqvmca9RM.net]
Dim G As Integer, H As Integer

を冒頭に入れてもダメかえ?

90 名前:デフォルトの名無しさん mailto:sage [2020/12/22(火) 21:43:02.14 ID:zqIv26bj0.net]
入れてみましたがダメでした…
OptionExplicitも外してますので宣言の問題ではないようです
でも宣言はすべきですね…



91 名前:デフォルトの名無しさん mailto:sage [2020/12/22(火) 21:47:05.04 ID:sqvmca9RM.net]
そういやクリアコンテンツって
シートの選択から直は無理だったような?w

Sheet(H).Select

を行で独立させてみたら?

92 名前:デフォルトの名無しさん mailto:sage [2020/12/22(火) 21:50:43.47 ID:sqvmca9RM.net]
すまん

Sheets

ね。s抜けたわ。

93 名前:デフォルトの名無しさん mailto:sage [2020/12/22(火) 21:55:05.91 ID:zqIv26bj0.net]
すみません、自己解決しました…
色々ありがとうございます。

Rangeの範囲指定の中のRangeにSheets(H).が抜けていたのが原因でした。
For Nextでシートが移ってもSheets(1)のRange範囲を参照するようになっていたようです・

94 名前:デフォルトの名無しさん mailto:sage [2020/12/22(火) 22:02:13.02 ID:sqvmca9RM.net]
あ、その罠かw
レンジレンジでやるとそこめんどくさいんだよな
Cellsのがいいと思う
あと>>91でもいけるんじゃないかな

95 名前:デフォルトの名無しさん mailto:sage [2020/12/22(火) 22:08:35.35 ID:AEyd3vLu0.net]
アクティブじゃないシート上の画像のサイズ変更すると想定と少しずれるんですが原因分かりますか?
サイズ変更する前にシートをアクティブにすると全て同じ大きさになるのでコードは合ってると思います

96 名前:デフォルトの名無しさん mailto:sage [2020/12/23(水) 05:25:00.77 ID:j3OsNt/k0.net]
>>80
早速の回答ありがとうございます

For r = 1 To Range("A" & Rows.Count).End(xlUp).Row

For r = 1 To Sheet("1" & Rows.Count).End(xlUp).Row
に変更したらいいのでしょうか?

初心者ですいません

97 名前:デフォルトの名無しさん mailto:sage [2020/12/23(水) 06:50:55.19 ID:xBPwPYbC0.net]
>>96

For r = 1 To Sheet1.Range("A" & Rows.Count).End(xlUp).Row

98 名前:デフォルトの名無しさん mailto:sage [2020/12/23(水) 11:44:28.79 ID:j3OsNt/k0.net]
>>97
ご教授ありがとうございます
初心者じみた質問で申し訳ありません!

ComboBox2.AddItem Sheet3.Range(r, c).Value

Sheet3を参照できないのですがどこが間違っているのか理解できません
わかる方いましたらよろしくです

99 名前:デフォルトの名無しさん mailto:sage [2020/12/23(水) 11:46:56.79 ID:o2ScoeZIM.net]
>>98
RangeをCellsに変えてみ

100 名前:デフォルトの名無しさん mailto:sage [2020/12/23(水) 15:07:17.52 ID:Xl4mgk4Md.net]
いつものあいつ確定



101 名前:デフォルトの名無しさん mailto:sage [2020/12/23(水) 15:43:35.91 ID:FcIaoKlm0.net]
いつものあいつが好きな奴確定

102 名前:デフォルトの名無しさん mailto:sage [2020/12/23(水) 15:51:50.15 ID:Xth9/5BD0.net]
いつものあいつは人気者
https://store.line.me/stickershop/product/1265677/ja

103 名前:デフォルトの名無しさん mailto:sage [2020/12/23(水) 18:16:20.38 ID:j3OsNt/k0.net]
>>99
ありがとうございます

104 名前:デフォルトの名無しさん mailto:sage [2020/12/23(水) 18:19:10.98 ID:j3OsNt/k0.net]
>>98
早速変更したらできました!!
本当に感謝します
自分の初心者じみた凡ミスですね
ありがとうございます
こころの優しい御仁

105 名前:デフォルトの名無しさん mailto:sage [2020/12/23(水) 20:48:51.52 ID:ZakT/bFP0.net]
初心者じみた…?

106 名前:デフォルトの名無しさん mailto:sage [2020/12/23(水) 21:42:26.23 ID:+z0aXtBh0.net]
ネタかと思って傍観していたが、久しぶりに質問スレっぽくてホッコリしたわ

107 名前:デフォルトの名無しさん mailto:sage [2020/12/23(水) 23:00:34.90 ID:igbw91HoM.net]
完全にいつものあいつじゃん

108 名前:デフォルトの名無しさん mailto:sage [2020/12/23(水) 23:04:58.03 ID:ZakT/bFP0.net]
一見相手を持ち上げてるようで馬鹿にしてるいつもの感じ

109 名前:デフォルトの名無しさん mailto:sage [2020/12/24(木) 18:03:54.48 ID:ib8ApZa60.net]
xlsで共用管理してた物品リストを
現場に飛ばされて激怒した仕事できないおばちゃんが
シートの保護にパスワードをかけてそのまま年末休みに入った
ネットで拾ったプロージャで
パスワードを解除した俺が神扱い

110 名前:デフォルトの名無しさん mailto:sage [2020/12/24(木) 19:35:35.16 ID:i3RIeYBl0.net]
ならこんなところで虚しいアピールしなくていいよ



111 名前:デフォルトの名無しさん mailto:sage [2020/12/24(木) 20:31:22.57 ID:OvKwRG9WM.net]
首案件か…

112 名前:デフォルトの名無しさん mailto:sage [2020/12/24(木) 21:20:52.76 ID:6nJjzXUX0.net]
保護かけただけなら実害ないじゃないか

113 名前:デフォルトの名無しさん mailto:sage [2020/12/24(木) 23:15:25.57 ID:ViSodmdc0.net]
許可なく改竄するのってどうかな

114 名前:デフォルトの名無しさん mailto:sage [2020/12/25(金) 00:16:09.85 ID:OfYljKJA0.net]
ユーザーフォーム1のボタンを押すと開始する処理をユーザーフォーム2から起動する方法ってない?
クラスに書いとかんとだめなのかな

115 名前:デフォルトの名無しさん mailto:sage [2020/12/25(金) 02:22:11.64 ID:Zgx05nqca.net]
書く場所かえればいいのに、いつもの人か?

116 名前:デフォルトの名無しさん mailto:sage [2020/12/25(金) 02:34:13.17 ID:oy51KHzs0.net]
標準モジュールに書いてCallではダメか?

117 名前:デフォルトの名無しさん mailto:sage [2020/12/25(金) 04:03:39.34 ID:OfYljKJA0.net]
>>116
そっか、たしかに標準モジュールに移植すれば良かったか

118 名前:デフォルトの名無しさん mailto:sage [2020/12/25(金) 19:42:46.45 ID:M+L+LuRT0.net]
>>117
Privateを取っ払ってただのSubにすれば、
UserForm1.ボタン_Clickで実行できる。

119 名前:デフォルトの名無しさん [2020/12/26(土) 11:08:58.12 ID:xVJ70HL70.net]
どなたかお教えください。
e-Gov法令検索
https://elaws.e-gov.go.jp/
というサイトでエクセルにリスト化されている法令を検索し,
ダウンロードすることを試みたいと考えております。
.Navigate でサイトを開き,
.document.getElementById("searchTextBox").Value = "法令名"
.document.getElementById("searchBtn").Click
で,該当の法令を検索させるまではできました。
その後,検索結果を見つけてURLを取得するところでつまずいております。
.document.getElementsByTagName
とかをどのように指定したらよいのでしょうか?
どうぞよろしくお願いいたします。

120 名前:デフォルトの名無しさん mailto:sage [2020/12/26(土) 13:00:08.72 ID:JDXDJsEV0.net]
>>119
そよのサイトでリスト化されているもののダウンロードはエクセルには向いてないので
手作業でやったほうがいいだろう



121 名前:デフォルトの名無しさん mailto:sage [2020/12/26(土) 14:44:21.47 ID:1Jq10AwVM.net]
Javaを覚えろってことか

122 名前:デフォルトの名無しさん [2020/12/26(土) 14:52:02.96 ID:CuJQon1q0.net]
Javaを覚えろってことよ

123 名前:>>119 [2020/12/26(土) 15:35:46.04 ID:xVJ70HL70.net]
>>120
アドバイスありがとうございます。
しかしながら100件くらいあって,定期的にチェックして(法令が更新されることがあるので)ダウンロードするとなると
つらいです。
なんとかどうぞお願いします。

124 名前:デフォルトの名無しさん mailto:sage [2020/12/26(土) 16:34:12.06 ID:AsvwShK0H.net]
>>123
ちょっとやってみるから、何か一つ検索キーワード教えて
あと検索条件はデフォルトのままでいいの?

125 名前:>>119 [2020/12/26(土) 18:32:04.58 ID:xVJ70HL70.net]
>>124さん
どうもありがとうございます。
キーワードは
予防接種法
検索条件はデフォルトのままでいいです。
お願いします。

126 名前:デフォルトの名無しさん mailto:sage [2020/12/26(土) 21:38:03.20 ID:AsvwShK0H.net]
>>125
ざっくり見たところ、そのサイトはスタイルシートで検索結果を渡してWebAPIでダウンロードする方式だからGetElementsなどは使えないしURLもどこにも書いてない
WebAPIを呼び出すフォーマットは、例えばこんな感じになってる
https://elaws.e-gov.go.jp/download?law_unique_id=323AC0000000068_20150801_000000000000000&file_type=PDF_H1
このURLをブラウザのアドレスバーに入れるとPDFのダウンロードが始まる

VBAでできないことはないけど難易度はけっこう高い
素人にはおすすめしない

127 名前:デフォルトの名無しさん mailto:sage [2020/12/27(日) 00:06:28.37 ID:V6kYHqJF0.net]
Ruby なら、curl コマンドとか、open-uri でダウンロードできる

require 'open-uri'

html = `curl ttps://何々`

url = "ttps://何々"
html = open( url )
puts html.read

128 名前:デフォルトの名無しさん [2020/12/27(日) 01:58:09.26 ID:s6cy7Ti00.net]
なぜVBAスレでrubyが

129 名前:127 mailto:sage [2020/12/27(日) 05:17:11.18 ID:V6kYHqJF0.net]
Windows 10 にも、curl が入った

コマンドプロンプトで、
where curl
と入力すると、

C:\Windows\System32\curl.exe

130 名前:デフォルトの名無しさん mailto:sage [2020/12/27(日) 08:26:34.69 ID:CaXXLtf40.net]
なら、
コマンドプロンプト
require
この3つをNGワードに追加。捗る。



131 名前:デフォルトの名無しさん mailto:sage [2020/12/27(日) 08:54:36.12 ID:73ofl+2yH.net]
URLを指定してダウンロードする方法の質問なんか誰もしてないのに、いきなり独り言
ルビー使いはあたおかだとよくわかる

132 名前:デフォルトの名無しさん mailto:sage [2020/12/27(日) 09:21:25.61 ID:iG00duHM0.net]
名門校で球拾いより弱小校でエースのほうが楽しいから
まあ関係のない部活に来てたらウザがられるだけだが

133 名前:デフォルトの名無しさん mailto:sage [2020/12/27(日) 09:39:02.91 ID:DRufeyQV0.net]
初心者がもの凄いものをいきなり作ろうとしてここに質問すればできると思っているいつもの人

134 名前:デフォルトの名無しさん mailto:sage [2020/12/27(日) 10:57:38.42 ID:Km9iTMMx0.net]
>>118
おおおお、そういうことかー
これなら標準モジュールに移植しなくても別のユーザーフォームから起動できるね
ありがとうございます!こういう豆知識待ってました

135 名前:デフォルトの名無しさん [2020/12/27(日) 18:38:53.38 ID:kvcCvRIC0.net]
privateの意味は豆知識ではなく一般常識ては?

136 名前:デフォルトの名無しさん mailto:sage [2020/12/28(月) 00:09:12.39 ID:eYw4/aNg0.net]
ユーザーフォーム2からユーザーフォーム1
ボタンを押したようにできることが豆知識だったのよ
自分にとってはね

137 名前:デフォルトの名無しさん mailto:sage [2020/12/28(月) 02:13:46.08 ID:zq2Mh9UF0.net]
>>133
初心者ではなく初心者から脱却する気の無い人間が

138 名前:デフォルトの名無しさん mailto:sage [2020/12/28(月) 11:52:39.77 ID:D2Ae0vPz0.net]
>>136
分かりにくくなるだろうな
そのフォーム1の処理の中にフォーム2の処理が混ざっていて・・・みたいな

139 名前:デフォルトの名無しさん mailto:sage [2020/12/28(月) 12:18:01.21 ID:tqv11FjK0.net]
単体で使いたい時もあるけど
ある処理の部品としても使いたいとかかな

140 名前:デフォルトの名無しさん mailto:sage [2020/12/28(月) 12:46:17.64 ID:2cxQATNW0.net]
それなら共通部品として切り出して
フォーム1から呼ぶ、2から呼ぶってしないと後々メンテで死ぬパターン



141 名前:デフォルトの名無しさん [2020/12/28(月) 20:20:11.64 ID:VGvj7ZmYa.net]
今FTPするのに諸事情あってwininetを利用してるんだけど
これってファイルのディレクトリ移動は無理?
ちなみにLINUXサーバ

例えば
/work/testdir/test.log

/work/movetodir/test.log
って感じで移動したい
コピーした後deleteすればいいのでコピーでもオッケー
今はスマホからならなので詳細ソースは勘弁して

試したのはFtpPutFileやFtpGetFileで
fromとtoをそれぞれファイル名やフルパスで入れ替えたりしてみたんだけど
まぁだめだった
FtpMoveFile的なものはないですか?

142 名前:デフォルトの名無しさん [2020/12/28(月) 20:23:27.00 ID:VGvj7ZmYa.net]
ちなみにBASPやWINSCPとかは規約上使用できないです
ない場合はローカルに一時的にgetした後別のディレクトリにPutすると言う力技も考え中

143 名前:デフォルトの名無しさん [2020/12/28(月) 20:51:35.01 ID:VGvj7ZmYa.net]
なんとなく自己解決
やはりFTPの仕様上Moveはダメっぽい
力技しか無いかなぁ

144 名前:デフォルトの名無しさん mailto:sage [2020/12/29(火) 04:24:04.54 ID:r4ksfnFx0.net]
シートを開いたときにシート上のコンボボックスにリストを読み込ませたいんですけど、
シート上にある文字列を読み込むのではなくマクロのみで特定の文字列を読み込ませることって出来ますか?

145 名前:144 mailto:sage [2020/12/29(火) 04:50:38.55 ID:r4ksfnFx0.net]
DirectXのコンボボックス使えば一発でした……すみません……

146 名前:144 mailto:sage [2020/12/29(火) 06:16:00.81 ID:r4ksfnFx0.net]
ActiveXのコンボボックス2つを設置し、以下のようにシートのところに記述後、ComboBox1のプルダウンボタンをクリックすると、

実行時エラー "380":
Valueプロパティを設定できません。プロパティの値が無効です

と表示され、「ComboBox2.Value = "G6"」がハイライト表示になるのですが、対処法が分かりません。ご教授お願い致します。

---------------------------------------------------

Option Explicit

Private Sub ComboBox1_Change()
ComboBox2.Value = "G6"
End Sub

Private Sub ComboBox1_DropButtonClick()
ComboBox1.List = Array("A", "B", "C", "D")
End Sub

Private Sub ComboBox2_DropButtonClick()
If ComboBox1.Value = "A" Then
ComboBox2.ListFillRange = "G6:G9"
Else
ComboBox2.ListFillRange = "G6:G8"
End If
End Sub

147 名前:144 mailto:sage [2020/12/29(火) 06:25:34.42 ID:r4ksfnFx0.net]
すみません、Stylesプロパティが2 - fmStyleDropDownListだったからValueに代入できなかったんですね……
ComboBox2.ListIndex = 0 にしたら直りました。お目汚しすみません。

148 名前:デフォルトの名無しさん mailto:sage [2020/12/29(火) 15:15:22.81 ID:eRbfzaAa0.net]
コンボ1→鈴木一郎
コンボ3→鈴木専務
      鈴木部長
      須藤係長
      杉村課長
コンボ3には先頭一致で「す」を検索し絞り込みで表示したいのですがむずかしいでしょうか?あるいは漢字一文字で検索でもいいのですがMatchFound関数を使用するのではないかと思うのですが検討もつきません
Option Explicit
Private Sub ComboBox2_Change()
End Sub
Private Sub UserForm_Initialize()
Dim r As Long
ComboBox1.ColumnCount = 2
For r = 1 To Sheet3.Range("A" & Rows.Count).End(xlUp).Row
ComboBox1.AddItem Range("DB!A" & r).Value
ComboBox1.List(r - 1, 1) = r 'リストの2列目にシートの何行目かを記憶
Next
End Sub
Private Sub ComboBox1_Change()
Dim r As Long
Dim c As Integer
r = ComboBox1.List(ComboBox1.ListIndex, 1) '選択したリストの2列目(シートの何行目か)
ComboBox2.Clear
For c = 2 To Sheet3.Cells(r, Columns.Count).End(xlToLeft).Column
ComboBox2.AddItem Sheet3.Cells(r, c).Value
Next

End Sub

149 名前:デフォルトの名無しさん mailto:sage [2020/12/29(火) 15:20:48.46 ID:xvN7YPpo0.net]
インデントしてない時点で(キリ

150 名前:デフォルトの名無しさん mailto:sage [2020/12/29(火) 15:24:36.38 ID:1ep2xIo7M.net]
>(キリ
ウザっ



151 名前:デフォルトの名無しさん mailto:sage [2020/12/29(火) 16:02:20.40 ID:NKmqU0kK0.net]
>>148
リスト全部チェックして一致したものを追加するなりシート上でフィルタした結果を追加するなりしたらいいんでないの

152 名前:デフォルトの名無しさん mailto:sage [2020/12/29(火) 16:26:47.99 ID:NKmqU0kK0.net]
思ったんだが、そのコード自分で読み込んだり動き確認したりしてないだろう…

153 名前:デフォルトの名無しさん mailto:sage [2020/12/29(火) 16:30:16.32 ID:9/T630Lp0.net]
質問するのが趣味なんだろ

154 名前:デフォルトの名無しさん mailto:sage [2020/12/29(火) 16:53:27.47 ID:dODwImwo0.net]
読み仮名でソートすればいいんでないの
エクセルの並び替えもこうなるし


大学(おおきいで変換)


大学(だいで変換)


155 名前:デフォルトの名無しさん mailto:sage [2020/12/29(火) 18:16:49.35 ID:eRbfzaAa0.net]
すいません!
質問するレベルにも到達してなくて
シート上で一致させるなら簡単ですね
質問が趣味ではないのですが
業務で必要なもので初心者ながら悪戦苦闘しています
質問のしかたが悪かったと思います
ちょっと考えて質問したいと思います

156 名前:デフォルトの名無しさん mailto:sage [2020/12/29(火) 18:20:31.42 ID:U6Tn+IN30.net]
いつものあいつだろ

157 名前:デフォルトの名無しさん mailto:sage [2020/12/29(火) 18:24:55.74 ID:NKmqU0kK0.net]
いつものやつだった・・・

158 名前:デフォルトの名無しさん mailto:sage [2020/12/29(火) 18:26:09.51 ID:eRbfzaAa0.net]
前に質問した時も
誰かと勘違いされたような・・・
誰ですか?
VBAスレには
4回ぐらいしか書き込んだりしてないのですが?
どういった人と勘違いしてるんですか?
荒らしみたいな人いるんですか?

159 名前:デフォルトの名無しさん mailto:sage [2020/12/29(火) 18:57:29.26 ID:lS8hY7UX0.net]
話題に上ると嬉しそうに反応すんなよw

160 名前:デフォルトの名無しさん mailto:sage [2020/12/29(火) 20:40:10.06 ID:eRbfzaAa0.net]
>>159
だからここには4回ぐらいしか来たことない
どういったら信じてくれるのかな
初めてだわ
荒らしと間違えられたの
どんな荒らしなの?
普通に書き込んでるつもりなんだけど?
何か気に入らなかった?
3日前ぐらいに書き込んだ時も勘違いされたけど
ホント勘弁して



161 名前:デフォルトの名無しさん mailto:sage [2020/12/29(火) 22:12:23.41 ID:DC9TsoaB0.net]
荒らしと同じようなことを書くから間違われるのでは?

162 名前:デフォルトの名無しさん mailto:sage [2020/12/29(火) 22:16:06.03 ID:mchvBN/f0.net]
真っ赤な帽子にキラリとヒカル

163 名前:デフォルトの名無しさん mailto:sage [2020/12/29(火) 22:16:31.70 ID:eRbfzaAa0.net]
>>161
どこがどう悪かったのか教えてください

164 名前:デフォルトの名無しさん mailto:sage [2020/12/29(火) 22:29:26.63 ID:dODwImwo0.net]
おかしな事言う人がいるな
でスルーしてたらいいと思うよ
今のままだと思うツボ

165 名前:デフォルトの名無しさん mailto:sage [2020/12/29(火) 23:51:56.35 ID:xvN7YPpo0.net]
>>78
わからぬ。ホムペとかに時々セミナーの写真とか載ってるからそれを見て判断
性格まで瓜二つだからすぐわかるぜw

166 名前:デフォルトの名無しさん mailto:sage [2020/12/30(水) 01:27:15.02 ID:RXqudRq00.net]
俺も前になんかの質問したときにいつものアイツって言われた事があったから逆になんでもかんでもいつものアイツって言いたがる荒らしが常駐してるもんだと思ってた

167 名前:144 mailto:sage [2020/12/30(水) 01:52:55.19 ID:Oh92F1JH0.net]
シートを開くと「オブジェクトが必要です。」だの「メソッドまたはデータメンバが見つかりません。」だのと表示されるんですけど、特に修正することもなく動作している(ように見える)んですけど、これ何が悪いんですかね?

168 名前:デフォルトの名無しさん mailto:sage [2020/12/30(水) 03:31:25.87 ID:AqLm+Pp2M.net]
PERSONALに余計な書き込みしちまっつてるんじゃね。
再表示させて全部消すんだ。

169 名前:144 mailto:sage [2020/12/30(水) 03:53:07.20 ID:Oh92F1JH0.net]
Personal.xlsですかね?


170 名前:しましたがそもそもファイル自体存在しないみたいです…… []
[ここ壊れてます]



171 名前:144 mailto:sage [2020/12/30(水) 03:58:33.29 ID:Oh92F1JH0.net]
なんかよく分かんないんですけどエラー行で指定してたコンボボックスを消して再設置したら直りました
助言ありがとうございました

172 名前:デフォルトの名無しさん mailto:sage [2020/12/30(水) 05:38:22.32 ID:AqLm+Pp2M.net]
毎回コンボボックス言ってるなあんた

173 名前:144 mailto:sage [2020/12/30(水) 05:47:42.87 ID:Oh92F1JH0.net]
なんかコンボボックスってクセ強くないですか?
すごく弄りにくくてややこしいです

174 名前:デフォルトの名無しさん mailto:sage [2020/12/30(水) 08:41:09.68 ID:mfFqR3/N0.net]
クセ強いって言うか、1クリックで2回イベント発動するのがなぁ・・
いちいちIf Flag Then Exit Sub とかいれて、
無理矢理1回しか動かないようにしてるけど、
他にいい方法ないもんかね

175 名前:デフォルトの名無しさん mailto:sage [2020/12/30(水) 08:43:56.99 ID:mfFqR3/N0.net]
あ、直前に Flag = Not Flag な

176 名前:デフォルトの名無しさん mailto:sage [2020/12/30(水) 11:23:33.25 ID:hFnpG/QKH.net]
>>173
イベントハンドラは必ず先頭でEnableEvents=Falseするんだよ
そして時間のかかる処理はハンドラの中へ書かずに別プロシージャに飛ばす

177 名前:デフォルトの名無しさん mailto:sage [2020/12/30(水) 13:02:57.82 ID:mfFqR3/N0.net]
>>175
ごめん、1クリックで2回じゃなくて、
選択肢の表示で1回、選択で1回で計2回の間違い
なのでイベントOFFで逃げられない

178 名前:デフォルトの名無しさん mailto:sage [2020/12/30(水) 16:14:15.56 ID:8iwO+LiN0.net]
状態管理用のフラグ作って管理している

179 名前:144 mailto:sage [2020/12/30(水) 23:59:22.86 ID:Oh92F1JH0.net]
>>173
マジすか
もしかしてDropButtonClickイベントに.Clearと.AddItemを入れたら選択してもボックス内に表示されなかったりするのって原因それですかね

180 名前:デフォルトの名無しさん mailto:sage [2020/12/31(木) 08:04:03.76 ID:qAEGulJg0.net]
>>178
そういうの作りながら動作確認しないの?



181 名前:デフォルトの名無しさん mailto:sage [2020/12/31(木) 08:17:09.79 ID:sAh4R5unH.net]
ネットにサンプルがいくらでも転がってんだから、素直にコピペしとけばいいのに

182 名前:デフォルトの名無しさん mailto:sage [2020/12/31(木) 08:39:17.53 ID:5hauEQny0.net]
直ぐにネットの野良コードを見て何も考えずにコピペコピペする人は決して【上級者】ではありません!(キリ

183 名前:デフォルトの名無しさん mailto:sage [2020/12/31(木) 10:43:23.83 ID:yfYCC+Dx0.net]
>>178
多分そう

>>179
最初はそんな罠があると思わないからな
俺は、間にMsgBox入れたら2回出たのでやっと気づいたわ

184 名前:デフォルトの名無しさん mailto:sage [2020/12/31(木) 10:53:25.38 ID:8vAoqqdn0.net]
罠なんてのは理解してる人間が陥るものであってただの知識不足には何の関係もない
想定の動きしなかったら一つ一つ確認するのは最低限のことだ

185 名前:デフォルトの名無しさん mailto:sage [2020/12/31(木) 11:11:12.57 ID:sAh4R5unH.net]
プログラムは決して思った通りには動かず、書いた通りにしか動かない
思った通りに動かない時、それは思った通りに書けてない時

186 名前:デフォルトの名無しさん mailto:sage [2020/12/31(木) 11:33:07.51 ID:yfYCC+Dx0.net]
いや、Windows Update直後に動かなくなるとか普通にあるから

あとVBSだが、最近InputBoxで第1引数の文字が出ないことがある
どこかのファイルから文字を読み込んでるとかじゃなく、
引数に直接指定してるのに
起動しなおすと出るから間違ってはいない

187 名前:デフォルトの名無しさん mailto:sage [2021/01/01(金) 09:42:29.21 ID:Sutdgdij0.net]
間違っているのではなく見落としているんじゃね

188 名前:デフォルトの名無しさん mailto:sage [2021/01/01(金) 17:08:38.32 ID:PXRj0cmP0.net]
そりゃPGの動作ってのは環境含めてだからな

189 名前:デフォルトの名無しさん mailto:sage [2021/01/02(土) 20:54:06.70 ID:gYfsTimq0.net]
不具合がわかっていて放置できるとかうらやましいな

190 名前:デフォルトの名無しさん mailto:sage [2021/01/04(月) 03:24:12.12 ID:SOcZuJtz0.net]
>>125
検索結果はARTICLEタグの1番目から3番目迄(0番目は検索結果とは違うものに使用されてる。)。
その下のクラス名LawDownloadの下にクラス名pdfFileが幾つか見つかるが、その直ぐ下にAタグにhref=で始まるURLが見つかる。

どれもGetElements系で取得出来る。
最後はURLDownloadToFile使えば良いんじゃね?



191 名前:デフォルトの名無しさん [2021/01/04(月) 16:03:39.37 ID:P/FS/eNz0.net]
バッチでデスクトップを再起動する人もあまりいないと思うが
デスクトップを再起動するプロシージャ内でExcelをQuitすると、Excelが勝手に再起動する
という現象が起きるので一応報告しとくね

環境によるかも
最初からWin10のPCで、Excel2019
(Win8からのアプデPCで、Excel2013では起きなかったかも)

デスクトップを再起動するコマンドを実行してるのはShell関数
Shell関数は非同期のはずだが、その同一プロシージャ内では、APIのSleepで5秒待っても駄目
DoEventsも駄目
そのプロシージャを一旦抜けて、タイマーで5秒後にQuitを実行すればExcelが再起動しない

デスクトップを再起動するのは、とあるツールの強制終了で残るタスクバーアイコンをクリアするためで
そんな用事のある人も滅多にいないだろうけど(クリアしなくても問題があるわけでもないし)

192 名前:デフォルトの名無しさん [2021/01/04(月) 16:52:13.02 ID:P/FS/eNz0.net]
Access VBAに比べるとExcel VBAは随分安定してるが
それでもゴリゴリ開発を繰り返すと、謎の実行エラーは起きるよね
ソースを全部エクスポートしてインポートし直すと直るやつ
結構有名なはずだが
謎は実在するのにないと言い張るのは、経験不足なだけ

話題の動作を確認したわけじゃないがね

193 名前:デフォルトの名無しさん mailto:sage [2021/01/04(月) 18:20:52.45 ID:WAisD+UGM.net]
あまり何もかもをまとめて処理するのはリスキー過ぎる
小分けにして段階を踏め

194 名前:デフォルトの名無しさん mailto:sage [2021/01/04(月) 21:23:02.41 ID:XJuzf2wY0.net]
VDI環境でメモリ4ギガしか振られてないんだけど、グローバル変数を4つくらい作るとメモリ不足エラーが出て不安定になります。
割り当てるメモリを増やせばエラー収まりますか?

195 名前:デフォルトの名無しさん mailto:sage [2021/01/07(木) 11:25:47.54 ID:vMxmEGnU0.net]
質問というか相談です
フォーム上のテキストボックスを右クリックした時、元の背景色が通常色の場合は黄色に、黄色の場合は通常色にと切替を行い、塗り潰しチェックの様な事が出来るようにした物を作りたいです
なのでMouseDown若しくはMouseUpで拾ってButton=2の場合に、テキストボックスの背景色を切り替える方向で行こうと考えました
MouseDownは1度のクリックで2度処理を行ってしまう為、MouseUPを使用しようと思いましたが、
正直押した瞬間ではなく離した時点なのが至極個人的に違和感バリバリなのでMouseDownでどうにか処理できないかと考えています
その場合、静的変数を用いて2回目かどうかの判定を行うのが良いのでしょうか

196 名前:デフォルトの名無しさん mailto:sage [2021/01/07(木) 12:14:22.04 ID:lqyAMCWOM.net]
Timerで1秒以内の2回目は止めたら

197 名前:デフォルトの名無しさん mailto:sage [2021/01/07(木) 13:06:20.76 ID:LEN4uLCLd.net]
for eachでフィルターがかけられた列をコレクションし、現在のセルと一つ下のセルの値を比較しようと思ったのですが、offsetだと隠れた行の数値が参照されてしまいます。
フィルタリングして可視状態の一つ下のセルを参照するには、どうすればよいのでしょうか。

198 名前:デフォルトの名無しさん [2021/01/07(木) 15:55:15.71 ID:JVCs6nJOM.net]
無理だな
一つ上のを覚えといて比較しな

199 名前:デフォルトの名無しさん mailto:sage [2021/01/07(木) 17:04:40.85 ID:lqyAMCWOM.net]
該当セルから下方向に、
VidibleがTrueなセルに当たるまで探せば

200 名前:デフォルトの名無しさん mailto:sage [2021/01/07(木) 20:16:51.59 ID:GNpPPMMj0.net]
>>194
マウス離した時に実行するのがExcelに限らず一般的な動作だと思うが



201 名前:デフォルトの名無しさん mailto:sage [2021/01/07(木) 23:26:20.22 ID:q8h4Rq+X0.net]
確かに
↓\→ 弱ボタン離す、でも波動拳出るな

202 名前:デフォルトの名無しさん mailto:sage [2021/01/07(木) 23:51:53.97 ID:CAJlIzxl0.net]
はどうけんてなんですか

203 名前:デフォルトの名無しさん mailto:sage [2021/01/07(木) 23:59:30.52 ID:GNpPPMMj0.net]
イギリスのロックバンドのことです

204 名前:デフォルトの名無しさん [2021/01/08(金) 07:36:54.65 ID:/1SPkI99a.net]
行とか列のデータのある範囲を選択するメソッドありますか?
currentregionの1行だけみたいなイメージで
今思いつくのは無理くり
Range("C5").CurrentRegion.Offset(略).Resize(略〜
ないしは
Endとかで割り出してから選択する
とかなんですが
なんかもう少しスマートな書き方があれば知りたいです

205 名前:デフォルトの名無しさん [2021/01/08(金) 07:38:15.90 ID:/1SPkI99a.net]
説明捕捉
>>203
の表の列はAからD以上まである感じです

206 名前:デフォルトの名無しさん mailto:sage [2021/01/08(金) 08:45:53.52 ID:F7dsXzNTM.net]
columnsとかrowsプロパティで範囲から希望の列や行を取り出すじゃ駄目なの?

207 名前:デフォルトの名無しさん [2021/01/08(金) 09:53:03.11 ID:/1SPkI99a.net]
>>205
いや、rowsだと行全体が選ばれてしまうので

例えば
1行目は4列
2行目は5列
とデータの入っている列数がバラバラな場合
(値は全て入っているものとして)
それぞれ4列とか5列分ぴったりに選ぶメソッドは無いものかと
C列基準とかで選べたら一番いいけど
A1選んで「ctrl+shift+→」と同じ結果でもいいです

208 名前:デフォルトの名無しさん [2021/01/08(金) 10:06:49.06 ID:/1SPkI99a.net]
すみません
>>205
のヒントで自己解決しました

Range("C5").EntireRow.SpecialCells(引数)
でいけました
失礼しました

209 名前:デフォルトの名無しさん mailto:sage [2021/01/08(金) 10:12:04.47 ID:0GZaxWieH.net]
>>206
一発で求めるメソッドやプロパティはない
たとえば3行目だけ選択だと、たぶんこれが最短
Range([A3], [A3].End(xlToRight)).Select

210 名前:デフォルトの名無しさん [2021/01/08(金) 10:18:16.84 ID:/1SPkI99a.net]
>>208
ありがとうございます
やっぱり1発ではないんですね
自分が書いたspecialcellも定数と数式とが混在してると
やはりUnionで繋ぐなどしかないので
煩雑になるなあと思っていたので
その書き方の方が良さそうですね



211 名前:デフォルトの名無しさん mailto:sage [2021/01/09(土) 19:33:14.89 ID:tpxthpMW0.net]
Dirコマンド、
コマンドプロンプトに直書きだとローカルもネットワークも取れるのに、
VBAからWSHで取ると、ローカルしか取れないのは何故?

212 名前:デフォルトの名無しさん mailto:sage [2021/01/09(土) 22:38:35.27 ID:sDO7vtGda.net]
理由は知らないけど、コマンドプロンプトのDIRコマンドと、VBAのDir関数は別物です

213 名前:デフォルトの名無しさん mailto:sage [2021/01/09(土) 22:40:13.80 ID:sDO7vtGda.net]
あ、失礼いたしました
VBAのDirでなく、スクリプト経由なのか
1つ前のレスは撤回します

214 名前:デフォルトの名無しさん mailto:sage [2021/01/10(日) 01:05:09.81 ID:kg6XuktW0.net]
>>210
まあユーザ認証回りだとおもうけど
ちょっとコード晒してみて

215 名前:デフォルトの名無しさん mailto:sage [2021/01/10(日) 01:13:14.86 ID:4Xu9louP0.net]
>>213
これそのまま
officetanaka.net/excel/vba/tips/tips27.htm

sCmd = "dir [ローカル]" だとOKで、
sCmd = "dir [ネットワーク]" だと取れない
Len(Result)で調べると0文字になってる

コマンドプロンプトでやると取れるから、打ち間違いじゃないと思うんだけど

216 名前:デフォルトの名無しさん mailto:sage [2021/01/10(日) 01:40:53.81 ID:bwHYpHvWH.net]
>>214
手動でコマンドプロンプトからネットが見えるか再確認した?
Windows Updateするとファイル共有が勝手にoffにされることがけっこうあるよ

217 名前:デフォルトの名無しさん mailto:sage [2021/01/10(日) 02:36:39.33 ID:CEBDD+E50.net]
>>215
そんなことねーよ
死ね

218 名前:デフォルトの名無しさん mailto:sage [2021/01/10(日) 08:23:59.20 ID:4Xu9louP0.net]
>>215
確認した
\\ネットワークにChr(34)入れて"\\ネットワーク"にしてもダメ
         (↑半角だと書き込めない)

219 名前:デフォルトの名無しさん mailto:sage [2021/01/10(日) 08:51:06.81 ID:kg6XuktW0.net]
>>214
[ネットワーク]の指定方法正しいか?
\\サーバ\共有名 でないと、\\サーバ だけではだめだぞ

手元で試したけど、うちではUNCパスでもネットワークドライブでもちゃんと動いた
ただし、パスワードは事前に保存済み
パスワード保存してないリソースはテストしてない

220 名前:デフォルトの名無しさん mailto:sage [2021/01/10(日) 09:02:01.60 ID:qJ1NhQml0.net]
ネットワークパス使ってファイルアクセス可能かまず調べる



221 名前:デフォルトの名無しさん mailto:sage [2021/01/10(日) 09:03:56.67 ID:4Xu9louP0.net]
>>218
\\サーバ\共有名って、\\サーバ\共有されてるフォルダ名?
それなら合ってる
ちなみに\\アドレスの数字\共有されてるフォルダ名ってのも試した
パスワードは、エクスプローラーから開くときにパスワード入れなくていい状態になってるから、
保存済だと思う

222 名前:デフォルトの名無しさん mailto:sage [2021/01/10(日) 11:56:30.27 ID:bwHYpHvWH.net]
うちではサンプルのままで問題なく共有フォルダのファイル一覧が出るからWSHのせいではないと思う
エラーコードやエラーメッセージは何も出てない?
Windowsのシェルを置き換えるとか、何かマニアックなカスタマイズしてる?

223 名前:デフォルトの名無しさん mailto:sage [2021/01/10(日) 12:45:12.99 ID:4Xu9louP0.net]
>>221
いや、サンプルのC:\"を\\〜に変えただけ
エラーも何もなく0文字で返ってくる
強いて言えば、試したのがVPN環境
後でVPNなしでどうなるか試してみるけど

224 名前:デフォルトの名無しさん mailto:sage [2021/01/10(日) 14:01:53.42 ID:bwHYpHvWH.net]
>>222
ホスト側のOSはWindows?双方にSMBは間違いなくフルセットで入れてある?

225 名前:デフォルトの名無しさん mailto:sage [2021/01/10(日) 16:37:15.38 ID:4Xu9louP0.net]
>>223
Windows
SMBがどうとかは、IT部門じゃないからわからない(会社の)

226 名前:デフォルトの名無しさん mailto:sage [2021/01/10(日) 17:55:38.15 ID:kg6XuktW0.net]
エラー(メッセージ)が出てないのはたぶん標準出力しかひらってないから
標準エラー出力になんか出てると思われ

227 名前:デフォルトの名無しさん mailto:sage [2021/01/10(日) 18:05:33.95 ID:kg6XuktW0.net]
つかここまでしてわざわざDirコマンド使う必要あるのか
何がやりたいんだ

228 名前:デフォルトの名無しさん mailto:sage [2021/01/10(日) 20:17:18.14 ID:4Xu9louP0.net]
>>226
サーバーの空き容量調べたいだけなんだけどね
方法は他にもあるけど、いちいちドライブ文字設定しなきゃいけないとか、
何かアドインみたいなの入れなきゃいけないとかあるし
Dirコマンドが一番シンプルだし、
batでテキスト出力するのは問題なくできるから、
それを直接変数に入れられないかなと思ったんだけど

229 名前:デフォルトの名無しさん mailto:sage [2021/01/10(日) 20:39:03.57 ID:kg6XuktW0.net]
>>227
WSHつかうならDriveオブジェクトがUNCパスいけるっぽいけど
https://docs.microsoft.com/ja-jp/office/vba/language/reference/user-interface-help/drive-object

230 名前:デフォルトの名無しさん mailto:sage [2021/01/10(日) 23:21:47.74 ID:CEBDD+E50.net]
馬鹿が聞いて馬鹿が答えるスレ



231 名前:デフォルトの名無しさん mailto:sage [2021/01/10(日) 23:32:18.31 ID:LL6dwzdY0.net]
>>229
お前は馬鹿馬鹿いうだけの馬鹿だな

232 名前:デフォルトの名無しさん mailto:sage [2021/01/11(月) 22:06:06.53 ID:pqPOJoG50.net]
このスレでお世話になりまくった者だけど
金欲しさに工場部門の夜勤に今年から異動したからVBA触ることももうない
数年後間接部門に戻れるかわからんけど
いや戻れないだろうけど
スレの全員に感謝だわ
本当に色々教えてもらったし構文そのまま頂けた
本当にありがとう

233 名前:デフォルトの名無しさん mailto:sage [2021/01/11(月) 23:57:28.02 ID:pfNMzUxK0.net]
生産管理でまた使うことになったりして・・・

234 名前:デフォルトの名無しさん mailto:sage [2021/01/12(火) 01:59:02.62 ID:OTa0Zw/f0.net]
VBAに触らなくて良くなるだけで羨ましいわ

235 名前:デフォルトの名無しさん mailto:sage [2021/01/12(火) 19:01:11.25 ID:dCVmoeOp0.net]
>>231
製造現場になじめないで会社辞めるに1ガバチョ

236 名前:210 mailto:sage [2021/01/13(水) 19:37:02.44 ID:lspxZscb0.net]
Dirコマンドの件で回答くれた皆さん

パスにUTF-8で文字化けする文字を含んでいたのが原因だったわ
しょうもないオチでごめんなさい&ありがとう

237 名前:デフォルトの名無しさん mailto:sage [2021/01/13(水) 20:54:16.63 ID:aeNWg8u3H.net]
UTF-8からシフトJISに正しく変換できない文字かあ
葛飾区とか草薙とか色々あるよな
記号も〜とか¥とか半角スペースとかマイナスとか、よく使うのに化けるのがたくさんある

238 名前:デフォルトの名無しさん [2021/01/14(木) 02:22:27.50 ID:JNzdWMyDd.net]
>>235
それを解決できない馬鹿が中途半端に書き込むなよ

239 名前:デフォルトの名無しさん mailto:sage [2021/01/14(木) 05:19:52.68 ID:ecyWCD0F0.net]
知恵袋よかこっちの方がよほど親身なのは住人が優しくてイイ人ばかりだからでつか?

240 名前:デフォルトの名無しさん mailto:sage [2021/01/14(木) 07:59:40.60 ID:gDZI6jyWr.net]
=TEXT(ROUNDDOWN(a1,1-INT(LOG(a1))),IF(1-LOG(a1)>0,"0."&REPT(0,1-INT(LOG(a1))),"0"))

をVBAで記述するとどうなるのか教えて欲しいです。よろしくお願いします。



241 名前:デフォルトの名無しさん mailto:sage [2021/01/14(木) 12:22:18.25 ID:YIqcuI1O0.net]
a = [TEXT(ROUNDDOWN(a1,1-INT(LOG(a1))),IF(1-LOG(a1)>0,"0."&REPT(0,1-INT(LOG(a1))),"0"))]

242 名前:デフォルトの名無しさん mailto:sage [2021/01/14(木) 12:56:03.99 ID:YzBTA1U5H.net]
>>240で解決してたけど、一応正攻法みたいな物

Sub 有効数字2桁()
  Dim A1 As Double
  Dim L As Integer
  Dim S As String
  Dim F As String
  A1 = Range("A1")
  L = 1 - Int(Log(A1) / Log(10#))
  If L > 0 Then
    F = F & "." & String(L, "0")
  Else
    F = "0"
  End If
  S = Format(WorksheetFunction.RoundDown(A1, L), F)
  Debug.Print S
End Sub

243 名前:デフォルトの名無しさん mailto:sage [2021/01/14(木) 18:59:26.33 ID:+2NwXrek0.net]
>>240
マジか・・
普通に書くか、いちいちWorksheetfunctionとか書いてたわ

244 名前:デフォルトの名無しさん mailto:sage [2021/01/14(木) 20:01:26.65 ID:SduAKFWs0.net]
質問です。

シートモジュール内で、

Private Sub Worksheet_Change(ByVal Target As Range)
For Each test In Range("他シートにある名前付きセルの名前")
Next test
End Sub

これで実行時エラー”1004” ’Range’メソッドは失敗しました:WorkSheetオブジェクト が出てしまうのですが、原因は何でしょうか。
Publicを取ってみたり、シートを指定しみたりしたんですが、変化ありません。
標準モジュールに記述してF5で実行した場合はエラー発生しません。
宜しくお願い致します。

245 名前:デフォルトの名無しさん mailto:sage [2021/01/14(木) 20:33:06.60 ID:gxjpIPZs0.net]
シートを指定する
名前の適用範囲を確認する

246 名前:デフォルトの名無しさん mailto:sage [2021/01/14(木) 20:38:30.13 ID:SduAKFWs0.net]
>244
名前の適用範囲を変えてみたりもしたんですが、だめでした。

247 名前:デフォルトの名無しさん mailto:sage [2021/01/14(木) 20:52:33.18 ID:SduAKFWs0.net]
>>244
すみません、解決しました。
名前の適用範囲を参照範囲のシートあるいはブックにして、且つVBAでそのシート指定すればいけました。

248 名前:デフォルトの名無しさん mailto:sage [2021/01/14(木) 20:55:12.26 ID:yNTWs1ET0.net]
>>243
In Rangeの範囲がそのシートだから、そこに名前付きセルはない
その範囲のあるシートがわかってるなら、In 他シート.Range("... のように指定するか
同一ブック内ならIn ThisWorkbook.Names("名前付きセルの名前").RefersToRange
とかでいけんじゃね

249 名前:デフォルトの名無しさん mailto:sage [2021/01/15(金) 07:45:14.16 ID:fl9fRXksr.net]
>>240
>>241
ありがとうございます。

250 名前:デフォルトの名無しさん mailto:sage [2021/01/16(土) 04:08:04.09 ID:wM/4uvwh0.net]
@Set DB As CurrentDb

ASet DB As CurrentDb()

この二つに使い分ける意味はありますか?



251 名前:デフォルトの名無しさん mailto:sage [2021/01/16(土) 10:41:53.52 ID:MRodpgDG0.net]
ないと思う

252 名前:デフォルトの名無しさん mailto:sage [2021/01/16(土) 16:36:07.57 ID:SaJeHrUX0.net]
@はカッコつけたい時
Aはキーボード打つのめんどくさい時

253 名前:249 mailto:sage [2021/01/16(土) 19:03:22.47 ID:wM/4uvwh0.net]
>>250>>251
ありがとう。教本読んだら2種類出てきたので、
何か違いはあるのかと思いまして。
同じだったのか…。

254 名前:デフォルトの名無しさん mailto:sage [2021/01/16(土) 19:33:57.85 ID:MRodpgDG0.net]
同じではない
必要性を感じないというだけ

255 名前:デフォルトの名無しさん mailto:sage [2021/01/16(土) 20:50:02.04 ID:wM/4uvwh0.net]
必要ないのを同じと表現したの

256 名前:デフォルトの名無しさん mailto:sage [2021/01/16(土) 21:12:53.28 ID:haZmUiAy0.net]
>>253
使い分ける意味がないのに同じでないのはないってどういう意味?

257 名前:デフォルトの名無しさん mailto:sate [2021/01/16(土) 21:22:36.09 ID:BbkPLu/V0.net]
ExcelのVBAにCurrentDbなんてないのは置いておくとしても
その文ってどっちもエラーになると思うんだが

258 名前:デフォルトの名無しさん mailto:sage [2021/01/16(土) 21:38:23.62 ID:wM/4uvwh0.net]
あ、すみません…
AccessVBAのスレってあったんですね。
申し訳ない。
あと1As」 って書いちゃってたけど「=」

259 名前:デフォルトの名無しさん mailto:sage [2021/01/16(土) 21:39:02.86 ID:wM/4uvwh0.net]
訂正
あと「As」って書いちゃってたけど当然「=」でした

260 名前:デフォルトの名無しさん mailto:sage [2021/01/16(土) 21:59:42.58 ID:BbkPLu/V0.net]
Accessで試したけどどっちも通って同じ結果だな

俺の予想では2はデフォルトプロパティの呼び出しになると思ったんだが
引数省略したら、かっこそのものも除去されて評価されてるのかもしれん

つかその教本ってなんだ?



261 名前:デフォルトの名無しさん mailto:sage [2021/01/16(土) 22:14:43.61 ID:BbkPLu/V0.net]
>>255
この例は同じ結果になってるけど、その二つはまったく同じではないよ
Accessで違いが出る例
Dim DB
Dim CurrentDb As Database
Set CurrentDb = Application.CurrentDb

Set DB = CurrentDb
MsgBox TypeName(DB)

Set DB = CurrentDb()
MsgBox TypeName(DB)

まあCurrentDbとかいう変数名は少なくともVBAではお勧めできないけどな

262 名前:デフォルトの名無しさん mailto:sage [2021/01/16(土) 22:21:15.40 ID:wM/4uvwh0.net]
CurrentDb自体を変数にするとか、それはもう別の話では

263 名前:デフォルトの名無しさん mailto:sage [2021/01/16(土) 23:00:55.60 ID:BbkPLu/V0.net]
前提を絞らなければ、動作に違いが出るかどうかの話だから別の話じゃない
変数名の良し悪しに関してはまあ別だが

つかその教本とやらを曝せ
俺的にはデータベースのインスタンスを取得する目的で後者の書き方とかなら、そっちのほうが問題だわ

264 名前:デフォルトの名無しさん mailto:sage [2021/01/17(日) 05:07:21.78 ID:Bpeq2DcA0.net]
実際にはやらない無理な方法で無理矢理話を混ぜ返したいだけで、
そもそも意図を汲んでない

265 名前:デフォルトの名無しさん mailto:sage [2021/01/17(日) 18:18:57.16 ID:6FyugFd+d.net]
初心者です
オートシェイプの名前を検索して置換できるコードを教えてください
調べてもオートシェイプ内のテキスト変換しかありません
お願いします

266 名前:デフォルトの名無しさん mailto:sage [2021/01/17(日) 20:37:25.77 ID:EfLIE7TKH.net]
>>264
オートシェイプの個数は
sheets("Sheet1").shapes.count

名前は
sheets("Sheet1").shapes(1).name

267 名前:デフォルトの名無しさん mailto:sage [2021/01/17(日) 21:03:01.02 ID:Bpeq2DcA0.net]
それはすでに使ってるシェイプの名前だろう
使ってない奴から選びたいんだろう

268 名前:デフォルトの名無しさん mailto:sage [2021/01/17(日) 21:25:06.25 ID:6FyugFd+d.net]
>>265
返信ありがとうございます
下記のオートシェイプに入力されたテキストを検索して置換するコードじゃなくてオートシェイプの名前を検索して置換したいのですがどこを直せばいいのでしょうか
Sub 置換() Dim tbox As Object Dim findStr As String Dim replaceStr As String Dim count As Long Dim i As Long Dim myDocument As Worksheet findStr = InputBox("置換対象文字列") replaceStr = InputBox("置換文字") Set myDocument = Worksheets(1) myDocument.Shapes.SelectAll
For i = 1 To myDocument.Shapes.count If myDocument.Shapes(i).Type = msoGroup Then Selection.ShapeRange.Ungroup.Select For Each tbox In Selection.ShapeRange tbox.TextFrame.Characters.Text = _ Replace(tbox.TextFrame.Characters.Text, findStr, replaceStr)
Next Selection.ShapeRange.Regroup.Select Else
Set tbox = myDocument.Shapes(i).TextFrame tbox.Characters.Text = _ Replace(tbox.Characters.Text, findStr, replaceStr)
End If
Next
End Sub

269 名前:デフォルトの名無しさん mailto:sage [2021/01/17(日) 21:32:27.18 ID:sTdEmPzt0.net]
聞く気ないだろw

270 名前:デフォルトの名無しさん mailto:sage [2021/01/17(日) 22:02:29.00 ID:Bpeq2DcA0.net]
そのようだなw



271 名前:デフォルトの名無しさん [2021/01/17(日) 22:10:02.50 ID:vD50J/Wf0.net]
適当にコードをコピペして聞きだそうとする手口

272 名前: mailto:sage [2021/01/17(日) 22:23:21.58 ID:gYjAP2D00.net]
質問です。よろしくお願いいたします。
VBA でスクレイピングを行っています

対象ページ:https://www.rakuten-sec.co.jp/web/market/data/rub.html ‥@
取得したい要素、 CSS セレクタで記載:document.querySelector("#cFx > table:nth-child(6) > tbody > tr:nth-child(1) > td.cell-02 > em").innerText  ‥‥A

しかし、Aは google chrome では取得できて、しかもコンソールでAを指定した場合も目的の値を取得できていますが、
Aを IE11 ->F12 で表示できるコンソールに食わせても、目的の値を取得できません。

質問1:google chrome におけるページ@のCSSセレクタAは、IE11 ではどのようになるのでしょうか?‥‥B
質問2:IE11 でBを取得する方法はどのようなものでしょうか?

以上よろしくお願いいたします。

273 名前:デフォルトの名無しさん [2021/01/17(日) 23:48:28.14 ID:7Jg8yd50M.net]
>>267
いろいろと修正箇所が多いので
https://qiita.com/Umaremin/items/b7726fa7340c7f175e77
このサイトのコードの
4行目の後に
Dim findStr As String, replaceStr As String
findStr = InputBox("置換対象文字列")
replaceStr = InputBox("置換文字")
'各Shapeに対する処理の2箇所に
shp.Name = Replace(shp.Name, findStr, replaceStr)
を追加すればうまく出来ると思う

ちなみに、理由は知らないけどリボンのページレイアウトの中のオブジェクトと選択と表示のシェイプの名前を変えずにデフォルトのままだとVBAが出す名前が英語表記になるので注意

274 名前:デフォルトの名無しさん mailto:sage [2021/01/18(月) 02:58:44.09 ID:pyrT8iNXH.net]
ちょっとソースを整理

Sub 置換()
  Dim tbox As Object
  Dim findStr As String
  Dim replaceStr As String
  Dim count As Long
  Dim i As Long
  Dim myDocument As Worksheet

  findStr = InputBox("置換対象文字列")
  replaceStr = InputBox("置換文字")
  Set myDocument = Worksheets(1)
  myDocument.Shapes.SelectAll

  For i = 1 To myDocument.Shapes.count
    If myDocument.Shapes(i).Type = msoGroup Then
      Selection.ShapeRange.Ungroup.Select
      For Each tbox In Selection.ShapeRange
        tbox.TextFrame.Characters.Text = Replace(tbox.TextFrame.Characters.Text, findStr, replaceStr)
      Next
      Selection.ShapeRange.Regroup.Select
    Else
      Set tbox = myDocument.Shapes(i).TextFrame
      tbox.Characters.Text = Replace(tbox.Characters.Text, findStr, replaceStr)
    End If
  Next
End Sub

275 名前:デフォルトの名無しさん mailto:sage [2021/01/18(月) 06:51:20.31 ID:hmFdo1dud.net]
>>272
言われた通りにやったら出来ましたありがとうございます。
自分がやりたかったことと同じでした。
>>273さんも整理してくれてありがとうございます。

276 名前:デフォルトの名無しさん mailto:sage [2021/01/18(月) 12:58:34.46 ID:JT9EgKXH0.net]
>>271
漏れが、Ruby, Selenium WebDriver, Chrome でアクセスしたら、空要素が返ってきた

CSS の :nth-child() 擬似クラスは、
兄弟要素のグループの中での位置に基づいて選択します

https://developer.mozilla.org/ja/docs/Web/API/Document/querySelectorAll
Document.querySelectorAll()

elementList = parentNode.querySelectorAll(selectors);
指定された selectors が CSS 擬似要素を含む場合、返されるリストは常に空になります

エラーログ

"jQuery.Deferred exception: Cannot read
property 'msie' of undefined TypeError: Cannot read property 'msie' of undefined

at HTMLDocument.<anonymous> (https://www.rakuten-sec.co.jp/web/shared/js/app/jquery.share-button.js?20160125:5:415)
at l (https://www.rakuten-sec.co.jp/web/shared/js/jquery.js:2:29375)
at c (https://www.rakuten-sec.co.jp/web/shared/js/jquery.js:2:29677) undefined",
source: https://www.rakuten-sec.co.jp/web/shared/js/jquery.js (2)

ひょっとして、そのサイトがバグっているのかも?
それかログインなど、特別な認証が必要なのかも?

277 名前:275 mailto:sage [2021/01/18(月) 13:03:01.53 ID:JT9EgKXH0.net]
それか、

jquery.share-button.js
と書いてあるから、

jQuery で作った画面か何かの、ボタンをクリックするなどの、
人間による操作が必要なのかも?

278 名前:デフォルトの名無しさん mailto:sage [2021/01/18(月) 13:14:48.80 ID:ipljQC5/a.net]
まあでもVBA関係ないな

279 名前:275 mailto:sage [2021/01/18(月) 13:39:24.37 ID:JT9EgKXH0.net]
そのサイト固有の問題かも。
それに、IE 11 はサポート切れで、多くのサイトで、まともに動かない

基本、Chrome しか動かない。
Chrome以外のブラウザは、まともに動かない

280 名前: mailto:sage [2021/01/18(月) 23:04:09.16 ID:lUOrFzyB0.net]
>>275,276,278
検証いただきありがとうございます
なにぶん、単に株価等をスクレイピングするためだけに年始から web スクレイピングを始めたばかりなので、難しいことはよくわかりません‥‥
やっぱり HTML5/CSS の基礎本からじっくりやるしかないでしょうか

引き続き、なにかコメントがありましたらよろしくお願いいたします‥‥

>>277
VBA で
Dim objIE As InternetExplorer
Set objIE = New InternetExplorer
objIE.navigate ur
時間待ちl
Dim htmlDoc As HTMLDocument
Set htmlDoc = objIE.document
Dim elementText As String
elementText = htmlDoc.querySelector("#cFx > table:nth-child(6) > tbody > tr:nth-child(1) > td.cell-02 > em").innerText
と書いていますが、それでもやっぱり VBA は関係ないのでしょうか?



281 名前:デフォルトの名無しさん mailto:sage [2021/01/18(月) 23:19:34.42 ID:froKP66m0.net]
スクレイピングが目的なら悪いことは言わないから大人しくpythonあたりにしとけ

282 名前:デフォルトの名無しさん [2021/01/19(火) 00:16:19.06 ID:9X7jktdiM.net]
今月からpythonを始めてサイトから文字を取ってきてエクセルにぶち込むくらいなら一週間で出来たな
その後のエクセルの処理はもちろんVBAだけどなw

283 名前:デフォルトの名無しさん mailto:sage [2021/01/19(火) 00:26:22.17 ID:i//ZhdNzH.net]
最近のホームページはブラウザごとに動作が違うから、本などを参考にするなら同じブラウザを使わないと、
本質と無関係なところではまって時間を無駄にすることになる

あと株価なんかスクレイピングしてもまったく意味ないぞ
どんだけ大量の数字を集めたところで、それで利益が出せると思ったら大間違いだからな

284 名前: mailto:sage [2021/01/19(火) 01:15:30.84 ID:LIV1Afk50.net]
>>282
>どんだけ大量の数字を集めたところで、それで利益が出せると思ったら大間違いだからな
そのとおりだと私も思います、ただし、さや取り(裁定取引)を米国株に適用するのなら商機あり、とみています
さや取り(裁定取引)とは:https://investars.jp/sayatori.php

285 名前:デフォルトの名無しさん mailto:sage [2021/01/19(火) 06:36:37.01 ID:6NIqY8sOM.net]
そもそも自動売買に使う頻度でスクレイピングって規約確認したのか?

286 名前:275 mailto:sage [2021/01/19(火) 07:21:09.11 ID:JrdPscbl0.net]
>>275
を修正

275は、ヘッドレスモードで動かしたので、エラーになったけど、
表示させて動かしたら、エラーにならなかった

でも、要素は取得できなかった

IE11 は、もうサポート切れじゃないの?
使わない方が良い

基本、Chrome を使うべき!

287 名前:275 mailto:sage [2021/01/19(火) 07:23:53.98 ID:JrdPscbl0.net]
勝手に頻繁にスクレイピングしたら、業務妨害で逮捕されるよ

基本、どの会社のサービスでも、
相手と契約して、API を使わないといけない

288 名前:275 mailto:sage [2021/01/19(火) 07:51:13.37 ID:JrdPscbl0.net]
そもそも、そのページ内に、id="cFx" が存在しない

var elems_1 = document.querySelectorAll( '#cFx' );
var elems_2 = document.querySelectorAll( '#cFx > table:nth-child(6) > tbody > tr:nth-child(1) > td.cell-02 > em' );
console.log( elems_1, elems_2 );

Chrome のF12 開発者ツールで実行しても、どちらも取得できない

289 名前:275 mailto:sage [2021/01/19(火) 08:28:20.74 ID:JrdPscbl0.net]
Chrome のF12 開発者ツールのコンソール画面を開くと、幾つかエラーが出てる

ログインしてるとか、営業時間内とか、
何かの条件が揃わないと、

そのページ内に、id="cFx" が現れないのかも

290 名前: mailto:sage [2021/01/19(火) 23:14:02.19 ID:LIV1Afk50.net]
>>286
IB証券との契約を検討中です
nyse と nasdaq 両市場の全上場株式を取得する必要はありますが、頻度は一社につき一日に一回だけでいいのが裁定取引のいいところだと思っています



291 名前:275 mailto:sage [2021/01/20(水) 06:54:28.87 ID:sOzWFlEJ0.net]
エンジニアチャンネル・粟島が、
2つの取引所の価格差を利用して、Ruby で鞘取りしてる

【検証】プログラミングでビットコインを自動売買すると一週間でいくら稼げるのか?
https://www.youtube.com/channel/UCMMjv61LfBy5J3AT8Ua0NGQ

292 名前:デフォルトの名無しさん mailto:sage [2021/01/20(水) 19:14:01.82 ID:WKaEu4ler.net]
初心者です。
質問をさせてください。
A列のデータをソートして、境目に改ページを適用するVBAを組みました。
その後にもう1つ動作を組み込みたいのですが、可能でしょうか?
組み込みたい動作は、
改ページの境目の1つ上のC列の内容をF1セルに都度反映させる。
イメージとしては、改ページで分けた内容ごとにタイトル行の一部を変えたい、といった感じです。
例:都道府県別に改ページをし、
東京の場合はタイトル行に東京と入れ込む。
そもそも無理なのかもしれませんが、お伺いしたく。。

長文失礼しました。
ご教示いただけますよう、お願いいたします。

293 名前:デフォルトの名無しさん mailto:sage [2021/01/20(水) 20:49:26.31 ID:j7C4dot+0.net]
まずその通りやってみればいいのに

294 名前: mailto:sage [2021/01/20(水) 20:58:51.72 ID:TIrvz66u0.net]
>>290
面白い動画を紹介いただきありがとうございました。
しかし裁定取引では、売りと買いの両方ができないと実現は困難かと考えています
BTC を売りから入ることは、たしか、まだできなかったのではないかと思います

295 名前:デフォルトの名無しさん mailto:sage [2021/01/21(木) 21:48:26.77 ID:YIL/x+Jj0.net]
ソルバーが全然うまくいかないし会社の人も誰もソルバー自体知らんかった
マイナーか…

296 名前:デフォルトの名無しさん mailto:sage [2021/01/22(金) 02:14:04.86 ID:JMbV/GNCa.net]
何て会社?

297 名前:デフォルトの名無しさん mailto:sage [2021/01/22(金) 02:36:21.59 ID:hl68e8TDH.net]
ソルバーは基本原理がわかってないと、どんな計算でもできると思い込んでるとはまる

298 名前:デフォルトの名無しさん mailto:sage [2021/01/22(金) 08:31:07.53 ID:2tHgWLf00.net]
上司と折りがあわずに部署異動になったのに
その職場の連中がlineでマクロが使えんくなったとか簡単に直せるかとか聞いてきて本当にうざい
自分も覚えてないの一点張りで返してるけど
Excelの数式すらまともに使えずに開発タブもチェックしてない連中に直せんわ
連絡してくんなよ

299 名前:デフォルトの名無しさん mailto:sage [2021/01/22(金) 08:35:33.62 ID:+nZCsLp6M.net]
で、質問は何ですか?

300 名前:デフォルトの名無しさん [2021/01/22(金) 08:41:50.70 ID:hJPaHw/b0.net]
すいません、教えてください。
Excel VBAでIEを制御しています。IEからデータをもって来てExcelに書き込んだり、
逆にExcel上のデータをIEに書き込んだり。
で、そろそろIEも駆逐されるみたいなのでEdgeとかChromeに対応させなくてはなりません。
そのままでは無理で、Web Driverとか、Selenium Basicが必要。
ここまであってますか?
で、これでEdgeとかChromeに対応した.xlsmを作ったとして、配布するとしたら、配布された側のPCにも
Web Driverとか、Selenium Basicをいれないといけないですか?



301 名前:デフォルトの名無しさん mailto:sage [2021/01/22(金) 10:48:34.97 ID:NBj8+FQEd.net]
エクセル VBA マクロで良い参考書はありますか?

302 名前:デフォルトの名無しさん mailto:sage [2021/01/22(金) 10:54:17.14 ID:Ti3taKZXr.net]
まだブラウザ操作しようなんてとこあるのか

303 名前:デフォルトの名無しさん mailto:sage [2021/01/22(金) 12:22:32.49 ID:I4Aue8uTa.net]
>>296
できると思ってんだけどなー、できないやつなのかもしれんな

304 名前:299 [2021/01/22(金) 14:11:09.33 ID:hJPaHw/b0.net]
>>301
Excel と IE というどのPCにでも入っているもので使えるので、5年前くらいからやってます・・
今回、PCに何かインストールしないとできなくなるみたいなので、どうしようかと・・

305 名前:デフォルトの名無しさん [2021/01/22(金) 14:15:47.27 ID:y6abuyBz0.net]
どうしようもないだろ
はい、次

306 名前:デフォルトの名無しさん mailto:sage [2021/01/22(金) 14:41:53.73 ID:hl68e8TDH.net]
>>303
何も追加インストールせずにEdgeをコントロールする方法ならここに書いてある
サンプルは32bit版だけどPtrsafe追加だけで64bitでも動く
https://www.ka-net.org/blog/?p=7921

ただしこの方法はWindowsやEdgeのバージョンが上がると使えなくなる可能性があるので注意

307 名前:デフォルトの名無しさん mailto:sage [2021/01/22(金) 15:06:57.75 ID:KA18g7jM0.net]
Ruby, Selenium WebDriver, Chrome が一般的

308 名前:299 [2021/01/22(金) 16:52:44.80 ID:hJPaHw/b0.net]
>>305
ありがとうございます。最新のChromeベースのEdgeでは使えないことが判明しました・・

>>306
rubyというのを使う場合、実際に動かすときはxlsmファイルと別に何かプログラムを記載した
ファイルを準備し、そのファイルを実行するというイメージになるのでしょうか?

309 名前:306 mailto:sage [2021/01/22(金) 17:48:37.37 ID:KA18g7jM0.net]
例えば、ヤフーに自動ログインするなら、
ユーザー名を入力して、ボタンをクリック、
パスワードを入力して、ボタンをクリック

以下のコードを、a.rb に書いて、ruby a.rb みたいに実行する。
パソコン内に、Ruby の実行環境を構築しないといけないけど

require "selenium-webdriver"

options = Selenium::WebDriver::Chrome::Options.new
options.add_option( :detach, true ) # ブラウザを切り離す
options.add_argument( '--start-maximized' ) # 画面最大

driver = Selenium::WebDriver.for :chrome, options: options
driver.manage.timeouts.implicit_wait = 10 # default timeout

driver.navigate.to "https://login.yahoo.co.jp/config/login_verify2?.src=ym"

element = driver.find_element(:id => "username")
element.send_key "ユーザー名"

driver.find_element(:id => "btnNext").click # ボタンをクリック

element = driver.find_element(:id => "passwd")
element.send_key "パスワード"

driver.find_element(:id => "btnSubmit").click # ボタンをクリック

310 名前:デフォルトの名無しさん mailto:sage [2021/01/22(金) 19:04:19.47 ID:fPx0q4lA0.net]
>>308
アホか?
WebDriver使って良いならVBAだって出来るだろwww



311 名前:デフォルトの名無しさん mailto:sage [2021/01/22(金) 19:10:53.50 ID:AXkriLC/M.net]
seleniumでググるとPythonのほうが出てくると思うんだが本当にRubyのほうが一般的か?

312 名前:デフォルトの名無しさん mailto:sage [2021/01/22(金) 19:14:00.08 ID:j9mQzeTK0.net]
狭い世界を一般的という人はどこにでもいる

313 名前:デフォルトの名無しさん mailto:sage [2021/01/22(金) 19:26:14.35 ID:AXkriLC/M.net]
環境のこと考えるならGASかpowershellを検討してみては?

314 名前:デフォルトの名無しさん mailto:sage [2021/01/22(金) 23:52:36.81 ID:hl68e8TDH.net]
>>307
最新のEdge (バージョン88.0.705.50 Chromium) で動いた

315 名前:デフォルトの名無しさん mailto:sage [2021/01/23(土) 00:14:35.39 ID:tp3qQjJz0.net]
>>313
それEdge じゃねえだろ。
今のEdgeはInternet Explorer_Server無いぞ。

316 名前:デフォルトの名無しさん mailto:sage [2021/01/23(土) 04:24:33.18 ID:W5gOUdwX0.net]
できる奴はネットも本も見ない、わからない事はF1押して調べるだけ

これ定説

317 名前:デフォルトの名無しさん mailto:sage [2021/01/23(土) 04:56:15.16 ID:xJNbQORc0.net]
みんながそんな熟練者じゃないんだし
俺みたいなど初心者をここで助けてくれた人もいる
平和にいこう

318 名前:デフォルトの名無しさん mailto:sage [2021/01/23(土) 09:29:09.37 ID:W5gOUdwX0.net]
そうですよねやっぱ
どこかの知恵袋と違って、ここはみんな優しく解説までしてくれる。器大きいぜ

319 名前:デフォルトの名無しさん mailto:sage [2021/01/23(土) 11:21:37.02 ID:XQqwzCqOd.net]
どの方法だってバージョンアップで使えなくなる可能性はある
CSSやJavaScriptが必要なければXHRオブジェクトが無難

完全にデファクトスタンダードと言えるブラウザが今は存在しないから、VBAでスクレイピングは鬼門になりつつある
今はまだWindowsマシンには必ずIEが入ってるから、しばらくはIEでやってくのがいいんじゃないかなあ

320 名前:デフォルトの名無しさん mailto:sage [2021/01/23(土) 12:55:12.09 ID:E44LngeNd.net]
俺が昨日、勉強したことを共有するぞ
VBAの記述の仕方は、オブジェクト.プロパティの順番だ
覚えておけよ



321 名前:デフォルトの名無しさん mailto:sage [2021/01/23(土) 12:56:50.53 ID:E44LngeNd.net]
MsgBox でTESTと表示できたときの感動ったらなかったね!
これから、少しずつ勉強するぞ

322 名前:デフォルトの名無しさん mailto:sage [2021/01/23(土) 18:45:02.47 ID:H5pOJUEN0.net]
>>305
それIEでも使うな。
よくわからんけど、F12で中が見られない子ウインドウが出るサイトとかある。

323 名前:デフォルトの名無しさん mailto:sage [2021/01/23(土) 21:45:57.51 ID:AoWSUa07d.net]
>>321
それ単なる画像じゃね?

324 名前:デフォルトの名無しさん mailto:sage [2021/01/23(土) 23:31:46.72 ID:H5pOJUEN0.net]
>>322
ObjectFromLresultとgetElementByで値取れるから画像じゃないと思う。
どういう仕組みのウインドウなのか知らんけど。

325 名前:デフォルトの名無しさん mailto:sage [2021/01/24(日) 05:01:50.09 ID:O96X//w/0.net]
田中君
広瀬君
桜井君
松岡君

326 名前:デフォルトの名無しさん mailto:sage [2021/01/24(日) 11:41:17.66 ID:NPfUvm+L0.net]
>>323
それで取れるならF12でも取れるんじゃね?
それかF12押してる対象が違うか。

327 名前:デフォルトの名無しさん mailto:sage [2021/01/25(月) 00:06:00.16 ID:bvf1oedN0.net]
>>325
クリックして、アクティブ&最前面にしてF12押しても何も出てこないんだよね。

328 名前:デフォルトの名無しさん mailto:sage [2021/01/25(月) 01:12:50.11 ID:YwFiLI6Vd.net]
>>326
エロサイトでも怒らないから、ちょっとそのサイト晒して

329 名前:デフォルトの名無しさん mailto:sage [2021/01/27(水) 02:51:52.41 ID:jiG8/Aof0.net]
>>326
Fが12個表示されてないか?

330 名前:デフォルトの名無しさん mailto:sage [2021/01/27(水) 08:04:15.56 ID:rs7ltanux.net]
F*ck F**k FFFFF**k



331 名前:デフォルトの名無しさん mailto:sage [2021/01/27(水) 16:24:41.99 ID:q3mmuO0LH.net]
下記の4行で問題なくIEでURL開けたのですが、

Dim objIE As InternetExplorer
Set objIE = New InternetExplorer

objIE.Visible = True
objIE.Navigate "aaa.com/bbb.html"

保存する部分のプログラムがネット上で見つかりません。
hogehoge.htmlでc:\でもエクセルファイルパスでも。

開ききるまでの Do Loop とか、参照の追加とか、
他の必要な事項はわかったのですが、「保存」だけがわかりません。

お願いします。

332 名前:デフォルトの名無しさん mailto:sage [2021/01/27(水) 16:48:32.96 ID:PEXoVVseH.net]
>>330
URLDownloadToFile
https://tonari-it.com/excel-vba-windowsapi-urldownloadtofile/

333 名前:デフォルトの名無しさん mailto:sage [2021/01/27(水) 19:08:59.20 ID:SKP56GPf0.net]
コレクション便利すぎワロタ

334 名前:299 [2021/01/27(水) 23:35:24.32 ID:L0AdvpAm0.net]
とりあえず個人のPCでSelenium BasicとChrome Driverをダウンロードして、VBAでChromeを操作してみました。
構文の違いを理解するのにちょっと時間がかかりましたが、VBAでIE操作と同じようなことができました。
しかし、IEに比べてかなり遅いですね。。
とくにFor-nextとかFor eachとかで複数個あるClassを一個ずつ取得してくのがかなり遅い・・。

335 名前:デフォルトの名無しさん mailto:sage [2021/01/28(木) 05:46:17.68 ID:u8tdLuFb0.net]
>>330
最近のWindows には、curl コマンドも入った

コマンドプロンプトで、where curl
と入力すると、
C:\Windows\System32\curl.exe

これとは別に、PowerShell にも、curl コマンドがあるけど、
これは別のコマンドのエイリアスだけど

336 名前:デフォルトの名無しさん mailto:sage [2021/01/28(木) 10:11:50.01 ID:ecmWwtyQH.net]
>>331
ありがとうございます。無事目的は果たせました。
ただし、2点、罠が潜んでました。解消しましたので謎解きは不要です。

1 コピペで張り付けたとき、URLを指定してる行が赤くなって、VBAに否定されました。
  URL"のあとのセミコロンがお気に召さなかったようです。削ったら赤い表示は消えました。
  コピペしたときに改行コードがかわった?

2 取りに行く相手が社内サーバのドメイン持ちだったのでドメイン指定したら、なんかダメで、
  MACも以前そんな反応したことを思い出して、IPアドレス(192.168.*.*)で指定したら動きました。

>>334
curl について調べましたが、数か所で見た説明自体がわかりませんでした。(泣)
お手数かけました。

337 名前:デフォルトの名無しさん mailto:sage [2021/01/28(木) 10:21:40.83 ID:8thmnp2a0.net]
>>315
熟練者はそれだけ分かるのかー
そもそもvbaのマニュアルというものがないしやりたいことのプロパティやメソッドは皆どうやって調べてるのか気になる
まあ今はネットあるけどネット普及してなかった90年代はF1で調べてた?

338 名前:デフォルトの名無しさん mailto:sage [2021/01/28(木) 10:58:39.20 ID:3f25njR4H.net]
>>336
90年代はみんなマニュアル本を買ってた
中身は英語のオンラインヘルプを翻訳して印刷しただけの物なんだけど、誤植と誤訳だらけ
VBAに限らず、1冊3000円〜8000円ぐらいのぶ厚い本が大きい本屋のパソコンコーナーに並んでた

339 名前:デフォルトの名無しさん mailto:sage [2021/01/28(木) 11:18:10.18 ID:3f25njR4H.net]
こういう辞書みたいなやつ、みんな持ってた
https://i.imgur.com/D0Vbidw.png

340 名前:デフォルトの名無しさん mailto:sage [2021/01/28(木) 11:56:54.04 ID:RkzGmpaJd.net]
あ、そうなのか
こうゆう辞書みたいな本はマイクロソフトから情報もらって作ってたのかなね
英語ヘルプで試行錯誤で作ってたのかね



341 名前:デフォルトの名無しさん mailto:sage [2021/01/28(木) 11:58:15.69 ID:8m13k+420.net]
これじゃないけど分厚いの1冊持ってるわ

342 名前:デフォルトの名無しさん [2021/01/28(木) 15:38:23.08 ID:jA4rpiExM.net]
今のExcel VBAって日本語ヘルプ付いてないの?

343 名前:デフォルトの名無しさん mailto:sage [2021/01/28(木) 15:51:32.46 ID:zfNxSqnZd.net]
>>339
発売前に英語版のヘルプが入ったCDをMSから送って貰って、それを手分けして翻訳した
Officeじゃないけど翻訳のバイトしてた

>>341
あるけど、今はオンラインヘルプに飛ばされるからネット環境がないと見れない
昔のバージョンはローカル化できたけど今は無理だと思う

344 名前:デフォルトの名無しさん mailto:sage [2021/01/28(木) 15:53:40.51 ID:8m13k+420.net]
F1ヘルプはあんま役に立たない

345 名前:デフォルトの名無しさん mailto:sage [2021/01/28(木) 15:55:46.33 ID:8thmnp2a0.net]
>>342
バイトすごいですね
今は何の職業?

346 名前:デフォルトの名無しさん mailto:sage [2021/01/28(木) 19:35:23.37 ID:1VXsvNu50.net]
Excelのハイパーリンクをクリックするたびに

MSのサイトにアクセス先の情報を送って
そこからリダイレクトしていたという
衝撃の事実を今日知った。

10年以上つかってて気が付かなかったよ
死ねこいつら

347 名前:デフォルトの名無しさん mailto:sage [2021/01/28(木) 20:13:31.96 ID:RkzGmpaJd.net]
>>345
え、これマ?

348 名前:デフォルトの名無しさん mailto:sage [2021/01/28(木) 20:18:19.29 ID:cYs3zIiO0.net]
ソースを

349 名前:デフォルトの名無しさん mailto:sage [2021/01/28(木) 20:26:06.12 ID:1+p+qv3s0.net]
これ買っとけばいいみたいなど定番の本はある?
ネットでやりたいことをちょこちょこパクって繋げてるけど限界だわ
汎用性の高い一つの大掛かりなVBAを組もうとしたら圧倒的に知恵がない

350 名前:デフォルトの名無しさん mailto:sage [2021/01/28(木) 20:34:03.81 ID:8m13k+420.net]
ネットで調べても書き方が人それぞれだったりちゃんと整理されれなかったり
肝心の自分の目的を書いてなかったりそんなんばっかだからな。
それらの無駄とストレスを減らすために、辞書は1冊あった方がいいな。
書き方と順序が統一されてるだけでも有用。



351 名前:デフォルトの名無しさん mailto:sage [2021/01/28(木) 20:35:31.88 ID:8m13k+420.net]
できる大辞典は定番ではある
他の本はいらん
これにないなら諦めて他で調べればいい

352 名前:デフォルトの名無しさん mailto:sage [2021/01/28(木) 20:54:55.16 ID:8thmnp2a0.net]
vbaでIEとかChromeとか操作できるのは最近分かったけど(やったことはない)、他に操作できるアプリってどのくらいあるの??

353 名前:デフォルトの名無しさん mailto:sage [2021/01/28(木) 20:55:48.34 ID:8m13k+420.net]
エッジもできる

354 名前:デフォルトの名無しさん mailto:sage [2021/01/28(木) 21:05:03.93 ID:8thmnp2a0.net]
あ、ブラウザー以外でおねがいしゃす

355 名前:デフォルトの名無しさん mailto:sage [2021/01/28(木) 21:09:54.36 ID:eBfsAdOM0.net]
>>345
それExselとか書いてないかい?w

356 名前:デフォルトの名無しさん mailto:sage [2021/01/28(木) 21:27:46.20 ID:1VXsvNu50.net]
https://superuser.com/questions/444984/excel-hyperlink-not-redirecting-properly-bug


This is a known Microsoft bug where hyperlinks are redirected to another page if:

You are using Microsoft Internet Explorer:
with a proxy server
while using a firewall that does not allow HTTP requests on your local network
Internet Explorer is not your default browser.
The ForceShellExecute registry key is not present or is not set to 1

You can apply the fix from here:

support.microsoft.com/kb/218153

バグなんてもんじゃねえ

357 名前:デフォルトの名無しさん mailto:sage [2021/01/28(木) 21:31:23.39 ID:ABoKcn6c0.net]
>>351
参照設定の中に入ってるのは普通に動かせるし、
WindowsAPIとUIAutomationとSendKeysがあるから、
マウスとキーボードで動かせるようなものなら大抵。
極端な例を言うと、VBAで仮想のファミコン(エミュ)を作ってマリオ動かす人もいる。

358 名前:デフォルトの名無しさん [2021/01/28(木) 21:34:15.56 ID:46r/uxOM0.net]
>>348
「一度死んでみた」

359 名前:デフォルトの名無しさん mailto:sage [2021/01/28(木) 21:37:00.50 ID:ABoKcn6c0.net]
って書いてて思ったんだけど、
IRモジュール使ってVBAでテレビとかエアコン動かせる人いる?

360 名前:デフォルトの名無しさん mailto:sage [2021/01/28(木) 21:50:11.88 ID:O9WqV6fA0.net]
俺さ、VBAのソース書いてて
インテリセンスが糞だと思ってたけど
上には上があるんだなぁ

今ClassicAspとかいう昔の組んでるんだけど
HTMLとJavaScriptとVBScriptで出来てて
テキスト編集ツール使って
テキストファイルで作ってる
もちろんインテリセンスなんて全く効かない

そうなると一番怖いのが文法エラー
VBAなんかだと一発で分かるけど
最初っからコンパイル自体されないので
どこでエラーになっているか
全く分からない



361 名前:デフォルトの名無しさん mailto:sage [2021/01/28(木) 21:57:01.68 ID:SI9VK8hs0.net]
ブラウザの開発ツールの使い方を知らないだけでは

362 名前:デフォルトの名無しさん mailto:sage [2021/01/28(木) 21:58:09.32 ID:8thmnp2a0.net]
>>356
vbaでエミュってエミュをvbaで起動してるってことではなく?
何をどうやったら作れるのか不思議
vbaでIoTの組み込みや操作も可能なのだろうかー

363 名前:デフォルトの名無しさん mailto:sage [2021/01/28(木) 22:02:50.14 ID:TxA55uF+M.net]
元々仕事でなんとなしに触らざるを得なくなってコピペやらその場限りのググりで生きながらえてきたんだけどちゃんと筋道立てて1から勉強したいというときに適した本やサイトはありますか?

364 名前:デフォルトの名無しさん mailto:sage [2021/01/28(木) 22:04:15.85 ID:8m13k+420.net]
本はある
サイトはない

365 名前:デフォルトの名無しさん mailto:sage [2021/01/28(木) 22:04:36.53 ID:8m13k+420.net]
本も当然、1冊では終わらん
入門編から順に買うことになる

366 名前:デフォルトの名無しさん [2021/01/28(木) 22:05:55.11 ID:46r/uxOM0.net]
>>359
馬鹿は黙っていればいいのに

367 名前:デフォルトの名無しさん mailto:sage [2021/01/28(木) 22:49:59.34 ID:TfrdJEz20.net]
>>362
慣れてきて半人前くらいになってきたな、と思うならこの本

入門レベルでは決して足りない実務に必須のスキルとは ExcelVBA 実戦のための技術

368 名前:デフォルトの名無しさん mailto:sage [2021/01/28(木) 23:07:43.56 ID:ABoKcn6c0.net]
>>361
VBAでエミュ。
今は消えてるけど、以前ここにワードで動かしてる動画があった。
https://www.nicogame.info/ja/watch/sm28022855

UPされた当時は実機並みのスピードは出てなかったけど、
今のハイスペックPCで動かしたらどうだったか・・。

369 名前:デフォルトの名無しさん mailto:sage [2021/01/28(木) 23:11:02.95 ID:8thmnp2a0.net]
>>367
謎技術

370 名前:デフォルトの名無しさん mailto:sage [2021/01/29(金) 00:41:18.26 ID:R2RLQXG+0.net]
VBAって当たり前だろうけどエクセルの基本的な知識がないと使えないよね?
エクセル全然知らないから大変だな…



371 名前:デフォルトの名無しさん mailto:sage [2021/01/29(金) 00:42:02.94 ID:SG5MocSx0.net]
それじゃ役に立てる場所がないじゃん
実践で使わないと上達しないぞ

372 名前:デフォルトの名無しさん mailto:sage [2021/01/29(金) 00:49:19.50 ID:SG5MocSx0.net]
未来の開拓のため!つっても普通
「よし、エクセルを覚えるぞ」からだろそれは…
PCにエクセルをインストールしてエクセル入門の本を買うところからだな
書式とか関数とかピボットとかスイスイできるほどに覚えてからだなVBAは
でないとプログラムの意味も理解できない

373 名前:デフォルトの名無しさん mailto:sage [2021/01/29(金) 01:35:07.55 ID:R2RLQXG+0.net]
>>371
助かります!

374 名前:デフォルトの名無しさん mailto:sage [2021/01/29(金) 02:08:08.30 ID:R2RLQXG+0.net]
エクセル初歩から覚えるなら絶対買っとけ!って書籍やサイトはありますか?

375 名前:デフォルトの名無しさん mailto:sage [2021/01/29(金) 02:35:09.20 ID:SG5MocSx0.net]
「絶対」は無い。
まあ「絶対ではないがまったり普通に」、
FOM出版のよくわかるシリーズでいいのでは。
当然最初は基礎編ね。
スレ違いだからこれ以上は然るべきところで聞くのがいいと思う。

376 名前:デフォルトの名無しさん mailto:sage [2021/01/29(金) 03:41:44.14 ID:IWwHfNXwH.net]
>>373
入門サイト
https://excel-ubara.com/excelvba1/

377 名前:デフォルトの名無しさん mailto:sage [2021/01/29(金) 03:58:52.37 ID:R2RLQXG+0.net]
>>374
>>375
ありがとう!!
とりあえず神髄を参考にしていきます

378 名前:デフォルトの名無しさん mailto:sage [2021/01/29(金) 08:15:50.80 ID:Xkyf+iIu0.net]
>>369
いや、Excelの知識無くてもVBだけでExcelを動かしてる人いますぜ
その人当然ワークシート関数をろくに知らない

379 名前:デフォルトの名無しさん [2021/01/29(金) 09:35:52.52 ID:Llo2P1qs0.net]
昭和の頃は、Excel講座に通うサラリーマンはバカにされてたけど、同時にvi使える人が達人として尊敬されてた。

どう考えてもテキストエディタより表計算のほうが技能必要だけど。

380 名前:デフォルトの名無しさん [2021/01/29(金) 09:38:10.99 ID:Llo2P1qs0.net]
日本の成長に脅威したCIAが、たいていの問題に対して使える優秀な製品を貶し、使いどころの限られる古いテキストエディタユーザーを神扱いしたのではないか?



381 名前:デフォルトの名無しさん mailto:sage [2021/01/29(金) 09:40:46.74 ID:higCsMc/M.net]
そもそもVBAは最後の手段であって、それを活用することは決して褒められたものじゃない
ワークシートの機能で簡単にできることを知らずにシコシコ馬鹿みたいにVBA書いてるアホは多い

382 名前:デフォルトの名無しさん [2021/01/29(金) 09:44:43.17 ID:Llo2P1qs0.net]
結果、CIAの思惑通り、標準的な日本人はviを使いこなせるが、Excelを使いこなす日本人は少ない。
Excelを使いこなせた方が絶対便利なのに。

383 名前:デフォルトの名無しさん mailto:sage [2021/01/29(金) 09:55:51.98 ID:eIG6sa+UM.net]
テキストエディタはC++やJava などでプログラム開発するためのただの道具だけどな
むしろ本格的なプログラム組むならVBAは汎用性に欠ける

384 名前:デフォルトの名無しさん mailto:sage [2021/01/29(金) 10:15:15.81 ID:9nrwkhnr0.net]
>>378
昭和にExcelあったっけ?

385 名前:デフォルトの名無しさん mailto:sage [2021/01/29(金) 10:17:07.73 ID:9nrwkhnr0.net]
最近はSheetというかExcelの外でのExcelVBAの活用方法を知りたい

386 名前:デフォルトの名無しさん mailto:sage [2021/01/29(金) 10:28:32.08 ID:Hw3psapAM.net]
Excelと他のアプリを連携するにしてもある程度の規模になるとVBAではなくてOffice add-ins(JavaScriptまたはTypeScript)やVSTO(C#)の利用をMicrosoftは推進してる
あくまでVBAはMS Officeのシステムの枠内で処理の自動化を実施するための道具

387 名前:デフォルトの名無しさん mailto:sage [2021/01/29(金) 11:18:05.10 ID:smfBIAno0.net]
>>383
Excel 自体は存在したけど日本語版じゃないしMac用だからリーマンが講座に通うとかはありえんだろうな
アメリカのリーマンかも知れんがw

388 名前:デフォルトの名無しさん mailto:sage [2021/01/29(金) 11:33:25.67 ID:IWwHfNXwH.net]
一番最初にMac版が発売されたのは昭和60年9月、ただしこの時点ではマクロは使えなかった
Windows版は昭和62年10月発売で、ここからマクロ機能が搭載された

この時代だと、viが使える人は別に尊敬されてない
そもそもほとんど知られてなかったんだから、使える人がすごいとか判断すらできなかった

389 名前:デフォルトの名無しさん mailto:sage [2021/01/29(金) 13:42:22.04 ID:Xkyf+iIu0.net]
知人がYouTubeで表計算なりVBを勉強したいと言っているが、同志達からみてどのチャンネルがおつつめ?
金子?ユースフル?たてばやし??
自分、YouTubeであまりExcelの参考にはしないから誰が優秀か全然わからん

390 名前:デフォルトの名無しさん mailto:sage [2021/01/29(金) 13:44:47.29 ID:IzzhGfbbM.net]
つべを見ないのが1番参考になる説



391 名前:デフォルトの名無しさん mailto:sage [2021/01/29(金) 13:46:17.88 ID:Xkyf+iIu0.net]
知人いわく、金子ていうあんちゃんがやたら人気あると聞いてさ
でもプロではないと思うから自分なら観ない

392 名前:デフォルトの名無しさん mailto:sage [2021/01/29(金) 15:03:44.68 ID:XKqQMMzPd.net]
お前ら化石みたい頭してそうだもんな、youtuberとか頑なに受け入れられないんだろうな
俺は金子見て勉強してるよ

393 名前:デフォルトの名無しさん mailto:sage [2021/01/29(金) 15:07:49.71 ID:hZ93xN6Od.net]
Exportasfixedformatメソッドでpdfを出力するとき、そのファイル名にセルの値を参照してるのですが
セルの値が改行されているとエラーが出ます。
エラーを出さず改行を無視してファイル名をつけたいのですが、どうすればよいでしょうか?

394 名前:デフォルトの名無しさん mailto:sage [2021/01/29(金) 16:22:00.18 ID:SG5MocSx0.net]
コード見せてよ

395 名前:デフォルトの名無しさん mailto:sage [2021/01/29(金) 16:32:12.51 ID:wsDc5NzC0.net]
改行の記号忘れたけど
あれをReplaceで消せばいいだけじゃね

396 名前:デフォルトの名無しさん mailto:sage [2021/01/29(金) 16:36:09.23 ID:SG5MocSx0.net]
vbCrとvbLfとvbNewLineを空文字化すればいけるかな?

397 名前:デフォルトの名無しさん mailto:sage [2021/01/29(金) 16:52:50.17 ID:ur5sUiDWd.net]
s = Replace(Replace(Replace(Replace(s, vbCr, ""), vbLf, ""), vbCrLf, ""), vbNewLine, "")

398 名前:デフォルトの名無しさん mailto:sage [2021/01/29(金) 17:07:40.77 ID:8cihH0fua.net]
vbNewLine は vbCr と vbLf の組み合わせか、いずれか一方だから、vbCr と vbLf だけでもいいかも

399 名前:397 mailto:sage [2021/01/29(金) 17:08:58.02 ID:8cihH0fua.net]
そんな定義はないか…

400 名前:デフォルトの名無しさん mailto:sage [2021/01/29(金) 17:32:34.00 ID:wsDc5NzC0.net]
396を関数に
Private Function Getファイル名(byval s as string) As String
Getファイル名 = Replace(Replace(Replace(Replace(s, vbCr, ""), vbLf, ""), vbCrLf, ""), vbNewLine, "")
End Function



401 名前:デフォルトの名無しさん mailto:sage [2021/01/29(金) 19:31:25.44 ID:Xkyf+iIu0.net]
田中派と金子派がハッキリ別れてるわ自分の界隈は

402 名前:デフォルトの名無しさん [2021/01/29(金) 20:44:38.50 ID:Wez0GYRkM.net]
他のダメ文字は来ないことをお祈りか

403 名前:デフォルトの名無しさん mailto:sage [2021/01/29(金) 21:10:33.96 ID:IWwHfNXwH.net]
youtubeができる前に基本は覚えたから今さら見る気になれないなあ
だからどっちがどうとかも興味ない

404 名前:デフォルトの名無しさん mailto:sage [2021/01/29(金) 21:43:57.23 ID:MBltpUk80.net]
>>399
全部空文字にするなら、置換する元のリストをArrayでくくって、lbound(配列)〜ubound(配列)でその配列の中身ループさせればいいだけじゃん
それ可読性悪すぎ

405 名前:デフォルトの名無しさん mailto:sage [2021/01/29(金) 21:55:58.53 ID:IWwHfNXwH.net]
要素がもっと多いと配列にした方がメンテ性は良くなりそうだけど、4つだと微妙だなあ
個人の好みで片付けたくなる

For Each x In Array(vbCr, vbLf, vbCrLf, vbNewLine)
  s = Replace(s, x, "")
Next

406 名前:デフォルトの名無しさん mailto:sage [2021/01/29(金) 21:59:33.79 ID:IWwHfNXwH.net]
あとForで回すと微妙に遅くなるんで、関数化(ブラックボックス化)して大量のデータを処理するなら1本の式にまとめた方がいいかもしれない

407 名前:デフォルトの名無しさん mailto:sage [2021/01/29(金) 22:14:22.45 ID:SG5MocSx0.net]
つまり403は考え足らずだったと

408 名前:デフォルトの名無しさん mailto:sage [2021/01/29(金) 23:07:49.79 ID:GBOzgJJf0.net]
CreateObject("VBScript.RegExp")で探すのも大差ない?

409 名前:デフォルトの名無しさん [2021/01/30(土) 00:02:38.07 ID:U1XssVyb0.net]
w、Wsは不用です。
あるシートの
w.Cells(1, "B")には000001234や000001234-1などの文字列が入っています。
ハイフンなしの場合は下7桁を。
ハイフンありの場合は-より左の下7桁と-以降を抜き出して
別のシート.同じ行のA列に入れたいです。
下記の処理でelse節を通る場合、
Rightしたときに前ゼロが消えちゃう(1234だけになる)んだけど
消えないようにするにはどう書けばいいですか。
(If節を通る場合は消えません)

If InStr(1, w.Cells(1, "B"), "-", vbTextCompare) >= 1 Then
Dim sNo() As String
sNo = Split(w.Cells(1, "B"), "-", , vbTextCompare)
sNo(0) = Right(sNo(0), 7)
Ws.Cells(gyo, "A") = Join(sNo, "-")
Else
Ws.Cells(gyo, "A") = Right(w.Cells(1, "B"), 7)
End If

410 名前:デフォルトの名無しさん [2021/01/30(土) 00:03:27.01 ID:U1XssVyb0.net]
間違えました
w、Wsは不用です。

w、Wsはシートです。



411 名前:デフォルトの名無しさん mailto:sage [2021/01/30(土) 01:01:10.51 ID:5ChT/CTU0.net]
>>403
>>404
なるほど勉強になるわ
いろんな書き方があるからプログラムは面白いな
スマホで打つの面倒くさいからコピペしたけど自分ならReplaceを4行に分けて

412 名前:一個ずつ処理してたわ []
[ここ壊れてます]

413 名前:デフォルトの名無しさん mailto:sage [2021/01/30(土) 01:07:22.27 ID:6QDP6TPLH.net]
>>408
Else
  Ws.Cells(gyo, "A").NumberFormatLocal = "@"
  Ws.Cells(gyo, "A") = Right(w.Cells(1, "B"), 7)
End If

414 名前:デフォルトの名無しさん mailto:sage [2021/01/30(土) 02:17:52.72 ID:O2YJs/tfd.net]
>>336
言っとくが、本気にするなよw
熟練者はネットも本も見るぞ。
ま、本に関してはVBAの本は見ないかも。

415 名前:デフォルトの名無しさん mailto:sage [2021/01/30(土) 02:23:06.62 ID:O2YJs/tfd.net]
>>385
???
そうか?
VSTO廃れてるように見えるが。
情報少ないし。

416 名前:デフォルトの名無しさん mailto:sage [2021/01/30(土) 02:42:40.27 ID:fm9PSZiO0.net]
>>408
単にWsのA列の表示形式が文字列じゃないだけじゃね

417 名前:デフォルトの名無しさん [2021/01/30(土) 02:48:37.26 ID:qXiZMF+3d.net]
>>392
これ面白そうだったから調べてみた。
s = worksheetfunction.clean(s)
でいけるっぽい

418 名前:デフォルトの名無しさん mailto:sage [2021/01/30(土) 07:14:33.38 ID:1M+OYc940.net]
VBAがそのうち廃止されると噂聞くけど無くなったらExcelじゃなくて良いね
キングとかジャストの安い互換ソフトで十分
それとPython

419 名前:デフォルトの名無しさん mailto:sage [2021/01/30(土) 07:28:22.98 ID:O0XirISQ0.net]
そんなのきいたこともない

420 名前:デフォルトの名無しさん mailto:sage [2021/01/30(土) 07:31:09.77 ID:inFBwlEk0.net]
上にExcel使いこなしてる奴少ないとあるが、事務歴長いおばちゃんとか操作長けてるイメージあるけどどうなの??



421 名前:デフォルトの名無しさん mailto:sage [2021/01/30(土) 07:45:37.30 ID:JU3c6HAP0.net]
>>397-398
> vbNewLine は vbCr と vbLf の組み合わせか、いずれか一方だから、vbCr と vbLf だけでもいいかも
それでいいと思う
https://docs.microsoft.com/ja-jp/office/vba/language/reference/user-interface-help/miscellaneous-constants

422 名前:デフォルトの名無しさん mailto:sage [2021/01/30(土) 08:19:24.57 ID:5ChT/CTU0.net]
>>415
MS様の関数を使うのが一番きれいか

423 名前:デフォルトの名無しさん mailto:sage [2021/01/30(土) 08:27:30.21 ID:jJ/MoYJX0.net]
>>418
テンキーだけ速い。

424 名前:デフォルトの名無しさん mailto:sage [2021/01/30(土) 08:28:40.37 ID:fCdLLOZj0.net]
ワークシートの関数とか基本的なものしか知らないな
知ってると便利そうね

425 名前:デフォルトの名無しさん mailto:sage [2021/01/30(土) 08:43:21.65 ID:BrDW2qLKd.net]
>>418
小企業で事務が2人ぐらいのとこだと、速いけどたいがい変な自己流
いわゆるExcel方眼紙を素早く作って定型文書を作ってしまうとかそんなイメージ
もちろんよく勉強してる人もいるが

426 名前:デフォルトの名無しさん mailto:sage [2021/01/30(土) 08:54:12.58 ID:BrDW2qLKd.net]
[A2] = [Clean(A1)]

427 名前:デフォルトの名無しさん mailto:sage [2021/01/30(土) 09:29:14.83 ID:inFBwlEk0.net]
テンキー速いのは良いね
電卓も得意そうだし
方眼紙はアカンど、あれ考えた人天才かファホどちらかだな
そういうおば様が引き継ぎにくいシートを大量生産しとるんだねうちみたいに

428 名前:デフォルトの名無しさん mailto:sage [2021/01/30(土) 10:10:18.97 ID:1M+OYc940.net]
VBAはいつまで使えるんだろう?
あと15年は大丈夫かね

429 名前:397 mailto:sage [2021/01/30(土) 10:35:24.24 ID:rbovmPt/a.net]
おー、ありがとございまーす‼︎

430 名前:397 mailto:sage [2021/01/30(土) 10:37:11.90 ID:rbovmPt/a.net]
>>419
おー、ありがとうございます‼︎



431 名前:デフォルトの名無しさん [2021/01/30(土) 10:41:58.65 ID:b7Gs8Wa80.net]
>>408
です

>>411
>>414
ありがとうございます、おっしゃる通り数字扱いになっているのだと思います。
>>411さんの方法でやってみます

432 名前:デフォルトの名無しさん mailto:sage [2021/01/30(土) 11:30:40.53 ID:1M+OYc940.net]
最近、Excel + Pythonとか耳にするけどVBAより何が良いんだろー?

433 名前:デフォルトの名無しさん mailto:sage [2021/01/30(土) 11:46:57.12 ID:O0XirISQ0.net]
ExcelVBAのひどさは文法よりライブラリのひどさにある
言語だけ変えてもあんまり解決しない

丸々置き換えた外部ライブラリならもっと楽にプログラムできるかもしれない

434 名前:デフォルトの名無しさん mailto:sage [2021/01/30(土) 12:27:45.49 ID:1M+OYc940.net]
そうなのかー

435 名前:デフォルトの名無しさん mailto:sage [2021/01/30(土) 13:08:59.54 ID:Jfm3X56+M.net]
Pythonみたいな外部環境使う時は、エクセルを操作って言うより作成する時が多そう
入出力ともにエクセルならVBAの方が手っ取り早いでしょ

436 名前:デフォルトの名無しさん mailto:sage [2021/01/30(土) 13:24:52.13 ID:Au3KeWLZM.net]
というかVBA使ってるのは他に開発ツールが無いからなんだよ
Pythonインストールできる環境ならそもそもVBAなんか使ってない

437 名前:デフォルトの名無しさん mailto:sage [2021/01/30(土) 13:37:40.94 ID:fCdLLOZj0.net]
最近VBA描けるようになって嬉しいけどここ見てると終わってる言語みたいだな...

438 名前:デフォルトの名無しさん mailto:sage [2021/01/30(土) 13:44:55.44 ID:inFBwlEk0.net]
古い言語だからでは?
昭和の定年ジジババがどや顔で昔からプログラミングやっていたと若者にマウント取ってくるのは大抵VBAが大半

439 名前:デフォルトの名無しさん mailto:sage [2021/01/30(土) 13:51:30.45 ID:Jfm3X56+M.net]
終わってる言語だけど、代わりに仕様変更がない安心感はある

諸悪の根源は仕事の効率化って名目でVBA押し売りするサイトやら講師やらだな
はよくたばれ

440 名前:デフォルトの名無しさん mailto:sage [2021/01/30(土) 14:05:31.86 ID:xS3gwMFJ0.net]
今VBA押してるか?
Pythonばかりステマされてる気がする



441 名前:デフォルトの名無しさん mailto:sage [2021/01/30(土) 14:46:55.21 ID:Au3KeWLZM.net]
>>435
今でも使われてるしVBAしか開発環境のない職場も多いし、
いつも手作業で気合いで乗り切るって人より遥かにマシだから引き続き学習進めていいと思うよ
ただ余裕があれば自宅でPythonとかHTML+JavaScript辺り触っとくといいかも

442 名前:デフォルトの名無しさん mailto:sage [2021/01/30(土) 16:29:08.79 ID:Jfm3X56+M.net]
Vbaしかないってどんな状況だよ

443 名前:デフォルトの名無しさん mailto:sage [2021/01/30(土) 16:33:11.52 ID:rDRgl3OZ0.net]
よくあるだろ。
オフィス系を主体に普通に手作業メインで事務やってるとこは。

444 名前:デフォルトの名無しさん mailto:sage [2021/01/30(土) 16:33:53.70 ID:c0t4Oketd.net]
>>434
Pythonインストールできる会社って少ないの?
なにか引っかかるの?

445 名前:デフォルトの名無しさん mailto:sage [2021/01/30(土) 16:36:47.91 ID:rDRgl3OZ0.net]
余計なものはインストールしちゃいけないことになってる

446 名前:デフォルトの名無しさん mailto:sage [2021/01/30(土) 16:59:35.87 ID:SAK/nUhP0.net]
良かれと思って勝手にやって怒られても嫌だしな

447 名前:デフォルトの名無しさん mailto:sage [2021/01/30(土) 17:00:42.77 ID:KmRaLG0X0.net]
規約で使っていいツールが決まってる

448 名前:デフォルトの名無しさん mailto:sage [2021/01/30(土) 17:06:41.65 ID:Jfm3X56+M.net]
何で勝手にインストールするのが前提なんだよ
上に相談すればいいじゃん
それすら出来ない融通の効かない会社なら、そもそもマクロなんか絶対許さないだろ

449 名前:デフォルトの名無しさん mailto:sage [2021/01/30(土) 17:13:45.33 ID:Rr8OfpXod.net]
ウチの会社は全く融通きかない
Alt+F11で上司の上司から呼び出し食らったの思い出しましたわ

450 名前:デフォルトの名無しさん mailto:sage [2021/01/30(土) 17:17:25.24 ID:rDRgl3OZ0.net]
>>446
上に相談で通るって、どんだけ小さい企業を想定してるんだよと



451 名前:デフォルトの名無しさん mailto:sage [2021/01/30(土) 17:24:56.08 ID:SAK/nUhP0.net]
>>446
お前の知ってる会社が世の中のすべてじゃないってことだよ

452 名前:デフォルトの名無しさん mailto:sage [2021/01/30(土) 17:24:58.39 ID:Jfm3X56+M.net]
上に相談するのに企業規模関係なくね?

453 名前:デフォルトの名無しさん mailto:sage [2021/01/30(土) 17:30:12.43 ID:Jfm3X56+M.net]
まぁどうせ無理だろって思い込みでやってるから、
そういう状況なんだろうな

行動しないかやっても中途半端なくせに上司や会社への愚痴は一人前

454 名前:デフォルトの名無しさん mailto:sage [2021/01/30(土) 17:43:22.21 ID:SAK/nUhP0.net]
そうやって思い込みで批判してるお前も思い込み仲間だな

455 名前:デフォルトの名無しさん mailto:sage [2021/01/30(土) 17:47:12.97 ID:6QDP6TPLH.net]
相談するかどうかには規模は関係ない
許可されるかどうかも規模は関係ないかな
相談のしやすさだけは違うかも

456 名前:デフォルトの名無しさん [2021/01/30(土) 18:58:14.37 ID:vCh93ej0M.net]
会社PCでPython+Excelなんて非現実的すぎるよな
相談しても「余計なことしなくていい」で終わり
でもExcelは最初から入ってるからVBAなら無問題
未だに使われてるのはそれが最大の理由
一時期「ExcelでPython使えるようになる」みたいな話があって期待してたけど立ち消えで残念

457 名前:デフォルトの名無しさん mailto:sage [2021/01/30(土) 19:17:07.76 ID:inFBwlEk0.net]
そもそもExcel使いの中でのVB人口が少ないわな
職場によっては白い目で見られる事あるみたいだし。。。

458 名前:デフォルトの名無しさん mailto:sage [2021/01/30(土) 19:23:25.71 ID:rDRgl3OZ0.net]
>>454
うちと同じ
厳格で神経質な大企業だわ

459 名前:デフォルトの名無しさん mailto:sage [2021/01/30(土) 19:57:40.31 ID:O0XirISQ0.net]
python入ってたらpip installぐらいさせてくれるだろ

460 名前:デフォルトの名無しさん mailto:sage [2021/01/30(土) 20:20:54.08 ID:JU3c6HAP0.net]
>>434
Excel関係ないならPowerShellでいいだろ
気合いるけどC#, VB.netだって使えるし



461 名前:デフォルトの名無しさん mailto:sage [2021/01/30(土) 20:25:06.96 ID:VxE/916e0.net]
>>454
えっ、ExcelにPython搭載の話は無くなったの?

462 名前:デフォルトの名無しさん mailto:sage [2021/01/30(土) 20:38:13.29 ID:j+igCUSpM.net]
>>459
ExcelにPythonが搭載?その後
https://qiita.com/yniji/items/b38bc312e860027108ac

463 名前:デフォルトの名無しさん mailto:sage [2021/01/30(土) 21:00:39.22 ID:aByJMjeF0.net]
>>458
PowerShellは軽く調べたことあるけどそんなに便利なの?
C#とかVB.netってのは追加インストールなしでできる?

今のところうちの会社で出来そうな言語は↓

・VBA(Office)
・VBS(WSH)
・Jscript(WSH)
・JavaScript(webブラウザ)
・PowerShell

464 名前:デフォルトの名無しさん mailto:sage [2021/01/30(土) 21:22:07.64 ID:xS3gwMFJ0.net]
VBAで簡単なアプリ開発ってできるの?
tefuくんの体脂肪測定器みたいな

465 名前:デフォルトの名無しさん mailto:sage [2021/01/30(土) 21:22:48.91 ID:O0XirISQ0.net]
いくら便利でも所詮はシェルだし
体系がわかりやすくなっても
いったん古い体系になじんでたら覚える手間増えるだけだし
劇的に安全になったり間違いが減ったり作業が減るわけじゃない
今から入る人以外やる人いるのか?

466 名前:デフォルトの名無しさん mailto:sage [2021/01/30(土) 21:23:28.18 ID:aByJMjeF0.net]
VBAは極めれば当然事務系のシステムはもちろんアクションゲームやシューディングゲームも作れる
開発効率は知らん

467 名前:デフォルトの名無しさん mailto:sage [2021/01/30(土) 21:35:23.25 ID:xS3gwMFJ0.net]
>>464
簡単なアプリ作るのに初心者から何年ぐらいかかるな

468 名前:デフォルトの名無しさん mailto:sage [2021/01/30(土) 21:40:45.18 ID:aByJMjeF0.net]
>>465
ジャンルは?

469 名前:デフォルトの名無しさん mailto:sage [2021/01/30(土) 21:41:39.22 ID:aByJMjeF0.net]
ああ、上に書いてあるようなやつか
人によるけど半年〜1年くらいじゃね?

470 名前:デフォルトの名無しさん mailto:sage [2021/01/30(土) 21:59:47.48 ID:xS3gwMFJ0.net]
>>467
tefu君たいしてすごくないな
ありがとう!



471 名前:デフォルトの名無しさん mailto:sage [2021/01/30(土) 22:54:30.67 ID:inFBwlEk0.net]
昭和の頃からExcelできる=パソコンできる
パソコンできる=Excel Wordできる
この固定観念は不変だいまだに
何故なんだや?

472 名前:デフォルトの名無しさん mailto:sage [2021/01/30(土) 23:08:10.45 ID:O0XirISQ0.net]
だれの概念だ
おれはしらんぞ

473 名前:デフォルトの名無しさん mailto:sage [2021/01/30(土) 23:08:37.64 ID:XeNTB87Q0.net]
固定観念ではなく社会に出てPC使う上で一番必要になるから

474 名前:デフォルトの名無しさん mailto:sage [2021/01/30(土) 23:14:56.21 ID:xzjRtN8LM.net]
昭和だと8bitパソコンの全盛期か?

475 名前:デフォルトの名無しさん mailto:sage [2021/01/31(日) 01:25:22.99 ID:SqzzHClod.net]
>>460
えっ!Excelにjavascript搭載?!

476 名前:デフォルトの名無しさん mailto:sage [2021/01/31(日) 03:01:40.77 ID:Y3xOrDkq0.net]
そもそもアプリがEXCEL何だから何が搭載されようがパフォは大差無いだろうな
それならブックが超軽いとかの方が恩恵あるわ

477 名前:デフォルトの名無しさん mailto:sage [2021/01/31(日) 10:40:24.97 ID:/4jghnKY0.net]
昭和だからMS-DOSって奴か
定年して10年位の近所の爺がやたらExcelの話しだけは詳しかったわ
平成初期って今みたいにpcが普及していたイメージ無いのだがね

478 名前:デフォルトの名無しさん mailto:sage [2021/01/31(日) 10:44:54.99 ID:LH9Tecev0.net]
平成初期は家庭の普及は少ないかもしれないが学校でPCの授業はある時代

479 名前:デフォルトの名無しさん mailto:sage [2021/01/31(日) 11:12:38.97 ID:eXchLs/k0.net]
平成初期頃ならPC-9801+MS-DOS上で一太郎とロータス123の時代

480 名前:デフォルトの名無しさん mailto:sage [2021/01/31(日) 12:51:12.93 ID:LqdlwBTz0.net]
FileSystemObjectのOpenTextFileで開いたファイルのポインタを最初の行に戻す方法ってありますか?
ADOのMoveFirstメソッドみたいな感じの。



481 名前:デフォルトの名無しさん mailto:sage [2021/01/31(日) 13:05:56.87 ID:tZ/FxqNKd.net]
Windows版Excel(もちろん英語版)が最初に発売されたのは一応昭和時代の終わり頃だよ
日本で使ってた人はほぼいなかったと思うけど

使い物になる日本語版が登場したのは平成5年の秋

482 名前:デフォルトの名無しさん mailto:sage [2021/01/31(日) 14:29:00.06 ID:BqVAUrnsx.net]
Excel 95か97は持ってたはずだが…どこいったかな
Excel2000は現役?で使ってたりするw
現代のPCで動かすと爆速だから

483 名前:デフォルトの名無しさん mailto:sage [2021/01/31(日) 15:54:08.87 ID:/4jghnKY0.net]
2000て今のパソコンで動くのか知らんかった
サンクス!

484 名前:デフォルトの名無しさん mailto:sage [2021/01/31(日) 15:56:11.00 ID:1T3G+5lu0.net]
3.1も動くんじゃね?

485 名前:デフォルトの名無しさん mailto:sage [2021/01/31(日) 16:01:12.88 ID:xa1uSfuZH.net]
Excel2000とWindows2000を勘違い

486 名前:デフォルトの名無しさん mailto:sage [2021/01/31(日) 19:37:03.65 ID:U4PZxrG+d.net]
>>435
色んな言語やって適材適所。
VBAの場合、特殊な環境なのでVBAが有利だけど出来ないことも結構ある。

487 名前:デフォルトの名無しさん mailto:sage [2021/01/31(日) 19:38:49.07 ID:U4PZxrG+d.net]
>>451
足らないなら作れば良いってのもある。
バイナリエディタぐらいなら2時間もあれば作れるだろ。

488 名前:デフォルトの名無しさん mailto:sage [2021/01/31(日) 19:41:00.82 ID:MeuEia/rM.net]
足らないなら
足りないなら

489 名前:デフォルトの名無しさん mailto:sage [2021/01/31(日) 19:42:32.36 ID:U4PZxrG+d.net]
>>461
問題はさ、結局VBAから呼び出す形じゃピタゴラスイッチみたいになるし、外部からExcel操作するようなのは、元々VBAでやる必要のない処理なので競合にならないということ。

490 名前:デフォルトの名無しさん mailto:sage [2021/01/31(日) 20:16:56.70 ID:7WfxADLN0.net]
ワード97のイースターエッグでピンボールが遊べた重いで
エクセルは迷路だっけか



491 名前:デフォルトの名無しさん mailto:sage [2021/01/31(日) 21:05:00.18 ID:zGey4MUp0.net]
冴子先生

492 名前:デフォルトの名無しさん mailto:sage [2021/01/31(日) 21:39:17.09 ID:xa1uSfuZH.net]
カイル

493 名前:デフォルトの名無しさん mailto:sage [2021/02/01(月) 10:35:57.85 ID:vqEWjed4a.net]
64bit対応をしてるんですが、素人なのでポインタ/ハンドルとそれ以外の区別が難しいです
GetInputStateはlongptrではなくlongで良い(実際どちらでも動くことは動きました)と思うのですが、合ってるでしょうか?

Private Declare PtrSafe Function GetInputState Lib “USER32” () As Long

(そもそも、パラメータや引数がないのに、何故型宣言が必要なのかからしてよく分からないのですが…)

494 名前:デフォルトの名無しさん [2021/02/01(月) 13:32:29.40 ID:0pAIWcaIM.net]
https://docs.microsoft.com/ja-jp/windows/win32/api/winuser/nf-winuser-getinputstate

検索しろよ
BOOLだからLONGでいいんじゃねえの?

495 名前:デフォルトの名無しさん [2021/02/01(月) 15:05:09.75 ID:cziAKMq/0.net]
>>491
そんなことがわからない馬鹿はAPI使うなよ

496 名前:デフォルトの名無しさん [2021/02/01(月) 16:35:31.74 ID:4U/YDNuw0.net]
ど素人の質問で大変申し訳ないのだけど、教えていただけないでしょうか。


Sub test()
Dim s As Worksheet

Set s = Worksheets.Add

Debug.Print "ActiveSheet.CodeName : " & ActiveSheet.CodeName
Debug.Print "s : " & s.CodeName
End Sub

というコードで、ワークシートを1枚追加してそのワークシートのコード名を取得しようとしたところ、
VBEを開いているときは問題なくコード名を取得できるのですが、
VBEを開かずに開発タブからマクロを実行させると、ActiveSheet.CodeName も s もブランクとなり、コード名を取得できません。
(VBEを開いた状態であれば、開発タブから実行させても取得できる)

何か追加で設定しなければならないことなどあるのでしょうか?

Excelのバージョンは 2019MSO(16.0.13530.20418)32ビット です。

497 名前:デフォルトの名無しさん mailto:sage [2021/02/01(月) 17:21:35.68 ID:90ziZ1xl0.net]
Debug.PrintじゃなくMsgBoxにしても無理?

498 名前:デフォルトの名無しさん mailto:sage [2021/02/01(月) 17:26:28.07 ID:4U/YDNuw0.net]
>>495
MsgBoxにしてみましたが、変わらずブランクのままでした…

499 名前:デフォルトの名無しさん mailto:sage [2021/02/01(月) 17:33:05.91 ID:90ziZ1xl0.net]
CodeNameプロパティは
VBE閉じてると取得できないみたいね
https://social.msdn.microsoft.com/Forums/ja-JP/d8862af1-4790-44a8-a6b8-89fc9681f7af/excel-12398-codename?forum=officesupportteamja

500 名前:デフォルトの名無しさん mailto:sage [2021/02/01(月) 17:40:51.41 ID:vqEWjed4a.net]
>>492
>>493
ありがとうございました
他人のコードを意味も分からず流用してました
戻り値なんですね



501 名前:デフォルトの名無しさん mailto:sage [2021/02/01(月) 17:52:09.95 ID:GaUVwnAZH.net]
>>497
これまじかー
イベントを起動するシート判定に使おうと思ってたから痛いな
配布する前でよかったのが救いか

502 名前:デフォルトの名無しさん mailto:sage [2021/02/01(月) 17:58:19.66 ID:s7QwQuf00.net]
Nameは使える

503 名前:デフォルトの名無しさん mailto:sage [2021/02/01(月) 18:31:44.12 ID:4U/YDNuw0.net]
>>497
ありがとうございます!
おかげさまで解決しました!
ものによってはVBE閉じていると取得できないということもあるんですね…勉強になりました…

504 名前:デフォルトの名無しさん mailto:sage [2021/02/01(月) 19:44:46.16 ID:x4MWOITLH.net]
497は既存のオブジェクトは大丈夫みたいだな
良かった

505 名前:デフォルトの名無しさん mailto:sage [2021/02/01(月) 23:01:45.15 ID:neAX3K2a0.net]
VBAでIoT、たとえば防犯カメラを特定の時間稼働させることできる?

506 名前:デフォルトの名無しさん mailto:sage [2021/02/01(月) 23:03:50.03 ID:cgpbZmzy0.net]
知らんけど何故VBAでやるの?

507 名前:デフォルトの名無しさん mailto:sage [2021/02/01(月) 23:04:15.16 ID:neAX3K2a0.net]
もしくはラズベリーパイ動かせたりする?

508 名前:デフォルトの名無しさん mailto:sage [2021/02/01(月) 23:04:51.14 ID:neAX3K2a0.net]
>>504
できるのかなと思て
ただの興味本位

509 名前:デフォルトの名無しさん mailto:sage [2021/02/01(月) 23:11:41.22 ID:KRwxYz520.net]
できない

510 名前:デフォルトの名無しさん mailto:sage [2021/02/02(火) 01:35:01.99 ID:eRozloyAH.net]
もちろんできるが



511 名前:デフォルトの名無しさん mailto:sage [2021/02/02(火) 02:35:02.20 ID:K9rz1pjI0.net]
VBAなんか使わなくてもできるだろ

512 名前:デフォルトの名無しさん mailto:sage [2021/02/02(火) 03:35:20.04 ID:CQc47MX20.net]
VBA以外のもんでも使ってりゃいいよね

513 名前:デフォルトの名無しさん [2021/02/02(火) 05:46:24.43 ID:rAxQwi5Z0.net]
こんなこともわからない馬鹿には無理

514 名前:デフォルトの名無しさん mailto:sage [2021/02/02(火) 07:45:22.80 ID:k1bhpTE6x.net]
複数のユーザーフォームをボタンと紐付された関数ごと
別のフォームのマルチページの一つのページとして統合したいんだけど
どうやったらいい?

コントロールのコピーしたら関数まっさらになってしまう

515 名前:デフォルトの名無しさん mailto:sage [2021/02/02(火) 08:44:36.43 ID:xrgeUBRvM.net]
コードもコピペしてオブジェクト名整えれば?

516 名前:デフォルトの名無しさん mailto:sage [2021/02/02(火) 09:39:10.72 ID:k1bhpTE6x.net]
すまん
問題はオブジェクト名にあった

コントロールをコピーして貼り付けるとコピー元とは無関係に
左上から連番でオブジェクト名が新規に付けられてしまう
それで元のコードとの相関性がグチャグチャに

他のフォームからコピーするとオブジェクト名の重複が発生するから
しょうがないとは思うが…

複数フォームを一つのフォーム内ページで管理出来たらコンパクトでいいと思ったが甘かったか

517 名前:デフォルトの名無しさん mailto:sage [2021/02/02(火) 09:52:43.44 ID:k1bhpTE6x.net]
ボタンのオブジェクト名をマクロで変更するにはどうしたらよいかわかる?

518 名前:デフォルトの名無しさん mailto:sage [2021/02/02(火) 12:07:20.51 ID:K9rz1pjI0.net]
素人が作るからそいういう糞システムになる

519 名前:デフォルトの名無しさん mailto:sage [2021/02/02(火) 13:21:01.13 ID:1bf+ts0k0.net]
え?
まさかみんなプロなのここ??

520 名前:デフォルトの名無しさん mailto:sage [2021/02/02(火) 13:30:17.30 ID:k1bhpTE6x.net]
仕事で使っちゃあいるが
ほぼ趣味だな
一度も仕事としてコーディングしたことはないな



521 名前:デフォルトの名無しさん mailto:sage [2021/02/02(火) 14:20:46.66 ID:CQc47MX20.net]
言葉遊びどーでもいい

522 名前:デフォルトの名無しさん mailto:sage [2021/02/02(火) 20:44:18.05 ID:gUgxJ4hN0.net]
VBAで何か生活の役にたつアイデアある?
家計簿しかり、体脂肪計しかり。他には?

523 名前:デフォルトの名無しさん [2021/02/02(火) 20:55:15.73 ID:9gegCBvb0.net]
アンケートならもっと人のいるところでやりましょう

524 名前:デフォルトの名無しさん mailto:sage [2021/02/02(火) 21:54:41.99 ID:6HeFUyi4M.net]
扱いたいデータ次第でしょ
スマートメーターとか
デジタル温湿度計とか
インプットのデータが多様であればあるほど
得られる成果の種類も増えるというもの

525 名前:デフォルトの名無しさん mailto:sage [2021/02/02(火) 22:01:58.54 ID:6HeFUyi4M.net]
素人質問
VBSで正規表現の(肯|否)定(先|後)読みが出来ないっぽいんだけど
気のせい?

526 名前:デフォルトの名無しさん mailto:sage [2021/02/02(火) 22:07:07.66 ID:/jXNxNj70.net]
VBAを生活に役立てるとかいう発想が的外れすぎる
Officeでやりたいことを実現する為のものってことすら理解してない

527 名前:デフォルトの名無しさん mailto:sage [2021/02/02(火) 22:11:21.43 ID:CQc47MX20.net]
そんなの正規表現じゃないからできないよ
もちろん一番肝心なVBAにとってのね

528 名前:デフォルトの名無しさん mailto:sage [2021/02/02(火) 22:11:57.41 ID:CQc47MX20.net]
>>524
いまいち理屈になってないな

529 名前:デフォルトの名無しさん mailto:sage [2021/02/02(火) 22:26:20.10 ID:aIKF9fP10.net]
俺はVBAで彼女できたし宝くじも当たった
死んだばあちゃんまで生き返って超ハッピーだわ

530 名前:デフォルトの名無しさん mailto:sage [2021/02/02(火) 22:27:38.52 ID:CQc47MX20.net]
で、オフィス365で結婚できたんだろ?w



531 名前:デフォルトの名無しさん mailto:sage [2021/02/02(火) 22:46:41.30 ID:gUgxJ4hN0.net]
競馬当てるアプリ作れないかなあ

532 名前:デフォルトの名無しさん mailto:sage [2021/02/02(火) 22:59:13.66 ID:IsWRFffm0.net]
まず、「当てるアルゴリズム」を考えなきゃだなw

533 名前:デフォルトの名無しさん mailto:sage [2021/02/02(火) 23:44:33.28 ID:gUgxJ4hN0.net]
ExcelVbaでコロナ撲滅できないかなあ

534 名前:デフォルトの名無しさん mailto:sage [2021/02/03(水) 00:08:17.17 ID:Yvoh8zTm0.net]
感染者の数字をいじればあら不思議

535 名前:デフォルトの名無しさん mailto:sage [2021/02/03(水) 00:13:00.26 ID:IsA8Nz810.net]
>>532
最近、感染者数を少なく発表して緊急事態事態宣言の効果だと思わせてるように感じるわ
でもそれで皆が緊張感を持てば本当に少なくなるわ

536 名前:デフォルトの名無しさん mailto:sage [2021/02/03(水) 00:22:42.50 ID:IsA8Nz810.net]
数字の操作ってゆうか

537 名前:デフォルトの名無しさん mailto:sage [2021/02/03(水) 00:25:44.87 ID:LtKIm7ALM.net]
>>525
意味がわかりません

538 名前:デフォルトの名無しさん mailto:sage [2021/02/03(水) 09:12:57.83 ID:oZwwFQVT0.net]
>>532
なんだEXCELのおかげで減ったのかw

539 名前:デフォルトの名無しさん mailto:sage [2021/02/03(水) 15:27:10.82 ID:+BSqfKukd.net]
感染者数、重症者数、検査数の計算に100パーセントExcel使ってるだろう

540 名前:デフォルトの名無しさん mailto:sage [2021/02/03(水) 15:33:21.67 ID:OWg+mFa00.net]
公務員はエクセル使えるほど有能じゃないよ



541 名前:デフォルトの名無しさん mailto:sage [2021/02/03(水) 15:43:30.53 ID:+BSqfKukd.net]
じゃどうやって計算するんだ

542 名前:デフォルトの名無しさん mailto:sage [2021/02/03(水) 15:43:54.79 ID:OWg+mFa00.net]
電卓

543 名前:デフォルトの名無しさん mailto:sage [2021/02/03(水) 15:47:57.83 ID:vHpfqXCDM.net]
役所の資料落としたら実数入ってることあったけど
関数での計算結果を貼り付けた訳じゃなかったのか
まぁ役所なら只管電卓叩くのはありそうだけど

544 名前:デフォルトの名無しさん mailto:sage [2021/02/03(水) 15:48:46.57 ID:pCF2gtkpM.net]
公務員は電卓使えるほど有能じゃないよ

545 名前:デフォルトの名無しさん mailto:sage [2021/02/03(水) 17:11:17.18 ID:NujmcxqJ0.net]
計算できるとこに丸投げ

546 名前:デフォルトの名無しさん mailto:sage [2021/02/03(水) 19:08:06.27 ID:3ZiqWZ4T0.net]
>>539
算盤

547 名前:デフォルトの名無しさん mailto:sage [2021/02/03(水) 20:08:10.32 ID:N+D/8PXWM.net]
国家公務員ですがVBAとADO(+SQL)でAccessや業務システムからデータ引っこ抜いて統計資料作ったりしてます
前任者は紙に印刷して正の字書いたり交通調査で使うカウンターみたいので数えてました
他にも色々業務楽にしましたが報告すると人が減らされるので、
隠しておいて余った時間に資格試験の勉強とかしてます

548 名前:デフォルトの名無しさん mailto:sage [2021/02/03(水) 20:31:35.92 ID:OWg+mFa00.net]
手作業が当たり前の公務員の職場環境で
マクロ使うとめっちゃ時間余るわな

549 名前:デフォルトの名無しさん mailto:sage [2021/02/03(水) 20:32:39.17 ID:OWg+mFa00.net]
結局>>545もやってる仕事は
効率化なぞしてない無能公務員のままってことなんだから

550 名前:デフォルトの名無しさん mailto:sage [2021/02/03(水) 21:04:10.99 ID:8fFe9VfNM.net]
VBAによる小手先の自動化により無駄な業務の整理や業務フローの見直し、システム改善などの本質的な業務改善のモチベーションが失われ、
結果的に業務効率を下げているというのはVBAあるある



551 名前:デフォルトの名無しさん mailto:sage [2021/02/03(水) 21:24:07.09 ID:pw5uMyFVM.net]
dictionaryに一括代入ってできますか?

552 名前:デフォルトの名無しさん mailto:sage [2021/02/03(水) 21:29:55.02 ID:u9u/PMRw0.net]
>>541
只管とかよくすらっと出てくるね。

553 名前:デフォルトの名無しさん mailto:sage [2021/02/03(水) 21:31:21.01 ID:u9u/PMRw0.net]
>>545
待てこら、それ税金…

554 名前:デフォルトの名無しさん mailto:sage [2021/02/03(水) 23:26:22.08 ID:IsA8Nz810.net]
>>545
周りのひとはvbaやマクロの存在を知らない
業務ではほぼエクセルを使用
そんな企業に転職したい

555 名前:デフォルトの名無しさん mailto:sage [2021/02/03(水) 23:34:48.39 ID:OWg+mFa00.net]
一般事務になるね
マクロできて当然の職場よりは時給下がると思う

556 名前:デフォルトの名無しさん mailto:sage [2021/02/03(水) 23:54:01.09 ID:KaBI8RGU0.net]
結局そういうアナログな企業は、効率化か進まないしそんな脳みそじゃ事業の収益性も低い。よって給料も少ない。

557 名前:デフォルトの名無しさん mailto:sage [2021/02/04(木) 00:29:12.39 ID:EDgIUA7r0.net]
そりゃそうだ
VBA出来て作業効率高い方が給料も高いわな
ただ単純に考えればVBAを
生業にしている奴より
VBAを補佐的に使って実際にはJavaや
C++、C#、Ruby等で大きなシステムを
作れる奴の方が給料は高い
下を見てもきりがないが
上を見てもきりがないのだよ

558 名前:デフォルトの名無しさん mailto:sage [2021/02/04(木) 05:41:02.93 ID:k/pdvxcQM.net]
>>547
抜本的な改革は現場じゃできないです
国家公務員なんで法律や規則、本省が定めた通達や事務連絡、業務システム等を使うことは義務付けられていて、
特段の定めのない部分を各自の裁量の範囲内で工夫するしかない
そしてその範疇ですらある程度の規模の改革をしようとすると根強いアナログ派に今の業務を変える必要がないと反対されます

559 名前:デフォルトの名無しさん mailto:sage [2021/02/04(木) 08:45:54.79 ID:EDgIUA7r0.net]
>>556
全く
それで糞国家公務員の糞議員が
こんなこと言ってるんだから笑える

【科学】「技術先進国とは呼べなくなった日本…デジタル化は20年遅れ、未知数の研究への投資にも消極的」 元内閣府副大臣が警鐘 ★6 [ボラえもん★]
https://asahi.5ch.net/test/read.cgi/newsplus/1612392403/

560 名前:デフォルトの名無しさん mailto:sage [2021/02/04(木) 12:43:48.65 ID:HL3/AUUDa.net]
システムは作るのが目的ではなく、運用してなんぼ



561 名前:デフォルトの名無しさん mailto:sage [2021/02/04(木) 16:00:33.10 ID:UCczH9pi0.net]
政治家が無理矢理変えてあげないとダメなままってことだね。
しかもいい方向に変えようとすると文句を言うほどの無能の二乗。
政治家の改革に公務員は文句を言ってはならないという法律を作らないとな。

562 名前:デフォルトの名無しさん mailto:sage [2021/02/04(木) 18:23:19.39 ID:Si5WR9J9M.net]
予算分捕るためのシステム構築だからいざ運用しようとすると結局人を介しての無駄な作業になってる

563 名前:デフォルトの名無しさん [2021/02/04(木) 18:37:47.68 ID:FKk50fHur.net]
Open、put といったバイナリーファイル作成するコマンド類使ってファイル書き出したら、
破損しているとメッセージが出る。
それでも修復して開くと元ファイルと同じような感じなのですが、破損されないやり方ってありますか?ちなみにWordやエクセル形式でなってます。

564 名前:デフォルトの名無しさん mailto:sage [2021/02/04(木) 19:17:39.93 ID:4EyDekmA0.net]
民営化勧めた結果だろ
国が技術に直接投資できる機会が減っただけ

565 名前:デフォルトの名無しさん mailto:sage [2021/02/04(木) 19:49:33.76 ID:oAeYA3FP0.net]
誰かVBAでココア作ってやれよ

566 名前:デフォルトの名無しさん mailto:sage [2021/02/04(木) 19:53:24.63 ID:hiF+rUbe0.net]
VBAでモバイル向けアプリは不可能

567 名前:デフォルトの名無しさん mailto:sage [2021/02/04(木) 20:04:35.91 ID:Gq769HFz0.net]
スレチ

568 名前:デフォルトの名無しさん mailto:sage [2021/02/04(木) 20:22:03.56 ID:txoKZHIlx.net]
>>553
東証一部上場のnot ITな技術職だけど
周りびっくりするほどマクロ使える人居ないよ
スクリプトの存在知ってる人で10人に一人くらい
年齢層高くてWindowsupdateも怖いってな感じな
アナログ昭和な雰囲気が色濃く残る
でも儲かってんだからあんまり気にしないって感じでな

569 名前:デフォルトの名無しさん mailto:sage [2021/02/04(木) 21:59:36.09 ID:SP6gWQY80.net]
>>566
よその会社がどんなだろうとわしらに関係ないし

570 名前:デフォルトの名無しさん mailto:sage [2021/02/05(金) 00:16:00.19 ID:7kBPI4G70.net]
HashiCorp の時価総額は5,000億円、GitHub は8,000億円で、

Shopify は15兆円で、
Airbnb は10兆円で、米ホテル大手3社の合計を超える

Ruby on Rails だと、社員1,000人で、1兆円ぐらい行く。
他の言語の10倍ぐらい高い感じ



571 名前:デフォルトの名無しさん mailto:sage [2021/02/05(金) 01:22:13.93 ID:iyRthznT0.net]
だからなに

572 名前:デフォルトの名無しさん mailto:sage [2021/02/05(金) 11:14:22.52 ID:s99X7duh0.net]
何かいているんだろうね
誤爆かな

573 名前:デフォルトの名無しさん mailto:sage [2021/02/05(金) 19:34:57.84 ID:6dLnjK/10.net]
お前が死ぬ?
だからなに?

574 名前:デフォルトの名無しさん mailto:sage [2021/02/06(土) 07:31:11.79 ID:h7KDjzAUa.net]
たらばがに?

575 名前:デフォルトの名無しさん mailto:sage [2021/02/06(土) 10:04:32.10 ID:vJxzd/Np0.net]
タラバガニはカニとつくがヤドカリの仲間

576 名前:デフォルトの名無しさん mailto:sage [2021/02/06(土) 10:30:51.90 ID:V74K/t/p0.net]
前レスにあったVBAでChromeのWEB操作って安定するの?

577 名前:デフォルトの名無しさん mailto:sage [2021/02/06(土) 10:31:59.83 ID:V74K/t/p0.net]
今流行りのRPAってVBAのsendkeyみたいなもんなのかなー

578 名前:デフォルトの名無しさん mailto:sage [2021/02/06(土) 16:20:00.03 ID:Dqii0zXCd.net]
>>575
全然違うw

VBAでも同じことが出来るがSendkeys使うのは、かなりレベルが低い。

普通はUIAutomationか古くからのウィンドウハンドルにコントロール毎の個別メッセージ投げる方法。

579 名前:デフォルトの名無しさん mailto:sage [2021/02/06(土) 16:31:09.62 ID:V74K/t/p0.net]
UIAutomationはじめてきいたよ
検索したら結構すごいな
ありがとうだよ

580 名前:デフォルトの名無しさん mailto:sage [2021/02/06(土) 19:33:52.07 ID:fN47MGl7x.net]
UIAutomation不安定で使いにくいよ



581 名前:デフォルトの名無しさん mailto:sage [2021/02/06(土) 20:06:48.07 ID:V74K/t/p0.net]
あ、そうなの
安定は何?

582 名前:デフォルトの名無しさん mailto:sage [2021/02/06(土) 20:46:25.88 ID:Ye4r/rjw0.net]
Hand

583 名前:デフォルトの名無しさん mailto:sage [2021/02/06(土) 21:31:42.19 ID:V74K/t/p0.net]
Hand?
検索しても出てこない

584 名前:デフォルトの名無しさん mailto:sage [2021/02/06(土) 21:32:07.41 ID:UWEF+xf00.net]
手作業って意味では?

585 名前:デフォルトの名無しさん mailto:sage [2021/02/06(土) 21:37:41.59 ID:V74K/t/p0.net]
えっ!(>@<)

586 名前:デフォルトの名無しさん mailto:sage [2021/02/06(土) 21:43:24.63 ID:lh4GrNRq0.net]
>>578
自分の技術が未熟なだけだろ。

587 名前:デフォルトの名無しさん mailto:sage [2021/02/08(月) 08:31:47.69 ID:3VxmPK6Z0.net]
他の言語にはできてVBAにはできないことって何がある?

588 名前:デフォルトの名無しさん mailto:sage [2021/02/08(月) 10:21:36.60 ID:Scq1JBqB0.net]
環境構築

589 名前:デフォルトの名無しさん mailto:sage [2021/02/08(月) 10:40:50.82 ID:+Mz9f4POH.net]
>>585
言語も色々あるから、VBA「だけ」にできないことってのは思いつかない
VBA「にも」できない、ならexe化とか色々あるけど

590 名前:デフォルトの名無しさん mailto:sage [2021/02/08(月) 11:53:50.27 ID:i/vSXK/G0.net]
>>585
Object指向言語で言うところの継承。
VBAにもインターフェース継承と言うものはあるが、
あれはObject指向言語の委譲に当たるので別物。



591 名前:デフォルトの名無しさん mailto:sage [2021/02/08(月) 12:19:06.34 ID:dnKpq+Faa.net]
>>585
エクセルを使わないで何かする

592 名前:デフォルトの名無しさん mailto:sage [2021/02/08(月) 12:48:06.83 ID:qHUCVA4k0.net]
>>585
全く出来ないわけじゃ無いけど、実質無理なのはマルチスレッド。
マルチプロセスなら出来るけど。

593 名前:デフォルトの名無しさん mailto:sage [2021/02/08(月) 18:11:48.67 ID:p8c3QmB90.net]
ブックを閉じるときに、全部のシートでA4、A6、A18、A20、A22のいずれかのセルに値が入っていたら、
シート名の先頭に"済"をつけて、シートを最後尾に移動するマクロを作りたいのですが、Worksheets(ws).Name = "済" & Worksheets(ws).Nameの所で
「実行時エラー13・型が一致しません」になります

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim ws As Worksheet
For Each ws In Worksheets
ws.Activate
If ws.Cells(4, 1) Like "" And _
ws.Cells(6, 1) Like "" And _
ws.Cells(18, 1) Like "" And _
ws.Cells(20, 1) Like "" And _
ws.Cells(30, 1) Like "" Then
Else
Worksheets(ws).Name = "済" & Worksheets(ws).Name
ws.Move After:=Sheets(Sheets.Count)
End If
Next ws

Application.Quit
ThisWorkbook.Close savechanges:=True

End Sub

594 名前:デフォルトの名無しさん mailto:sage [2021/02/08(月) 18:14:26.48 ID:NxJgvgy90.net]
そりゃ一致しないw
Worksheets(ws).Nameじゃなくて、ws.nameでいけるよ

595 名前:591 mailto:sage [2021/02/08(月) 18:18:43.05 ID:p8c3QmB90.net]
>>592
ありがとうございますm(_ _)m

596 名前:デフォルトの名無しさん mailto:sage [2021/02/08(月) 20:35:33.37 ID:zFuXTVqB0.net]
wsに何を入れてるか自分でわかってないのでは

597 名前:デフォルトの名無しさん mailto:sage [2021/02/08(月) 22:23:33.63 ID:PnrMZIJR0.net]
>>594
エラーになってる行以外は正しいからちょっとした勘違いじゃね?
それよりFor Each ... In WorkSheets のループ中にシートの移動とかして大丈夫なんだっけ?

598 名前:デフォルトの名無しさん mailto:sage [2021/02/08(月) 22:58:25.06 ID:dqyQLjrK0.net]
Like ""じゃなくて.Value <> ""にしてElse消した方が分かりやすいとは思う
まあその辺は好みか

599 名前:デフォルトの名無しさん mailto:sage [2021/02/08(月) 23:02:43.36 ID:PnrMZIJR0.net]
>>596
> Like ""じゃなくて.Value <> ""にしてElse消した方が
And を Or にするのを忘れてるぞ…

600 名前:デフォルトの名無しさん mailto:sage [2021/02/08(月) 23:11:37.90 ID:dqyQLjrK0.net]
そんな揚げ足取らんでも



601 名前:デフォルトの名無しさん mailto:sage [2021/02/08(月) 23:37:22.94 ID:+Mz9f4POH.net]
可読性無視

For Each ws In Worksheets
 with ws
  .Activate
  If .Cells(4, 1) & .Cells(6, 1) & .Cells(18, 1) & .Cells(20, 1) & .Cells(30, 1) <> "" then
   .Name = "済" & .Name
   .Move After:=Sheets(Sheets.Count)
  End If
 End with
Next

602 名前:デフォルトの名無しさん mailto:sage [2021/02/08(月) 23:44:11.84 ID:hflY2uffd.net]
最近はexcel vbaを淘汰しようとkintoneとかゆうのが台頭してきたな

603 名前:デフォルトの名無しさん mailto:sage [2021/02/09(火) 00:16:34.90 ID:WNqxBDcE0.net]
>>600
大体今までの経験則から言うと
ノンプログラミングというのは
ろくなことがない。

無理に纏めようとして
歪みが生じて
結局ぐちゃぐちゃになるのがオチ

604 名前:デフォルトの名無しさん mailto:sage [2021/02/09(火) 00:29:46.89 ID:eSMVOSkL0.net]
>>600
結局、スクリプトとかが必要になる

605 名前:デフォルトの名無しさん mailto:sage [2021/02/09(火) 00:46:13.94 ID:zh7tau7O0.net]
Select文で求めない条件を並べるのもおすすめ

Select Case Empty
Case ws.Cells(4, 1).Value
....
Case ws.Cells(30, 1).Value
Case Else
Worksheets(ws).Name = "済" & Worksheets(ws).Name
End Select

Case節で分けなくてもカンマで条件を繋げても問題ない
短絡評価にもなる

606 名前:デフォルトの名無しさん mailto:sage [2021/02/09(火) 11:57:03.39 ID:RXmZGByb0.net]
sagasu= Dir(ThisWorkbook.Path & ”作業ファイル*20210209*”)

Worksbooks.Open(以下略)

みたいな感じで自動でファイルを探してきて開くマクロを作りたいのですが、20210209の部分が常に変わるので、
変数=hizuke(yymmdd、str)を定義したのでこれをDir関数にワイルドカードつきで組み込みたいのですができませんか?
初歩的かもしれませんが検索しても見つからなくて、、、

607 名前:デフォルトの名無しさん mailto:sage [2021/02/09(火) 12:24:40.43 ID:3oJYLekcH.net]
>>604
sagasu= Dir(ThisWorkbook.Path & "作業ファイル*" & 変数 & "*")

あと、hizukeって関数は自作しなくてもFormatというのがある

608 名前:デフォルトの名無しさん mailto:sage [2021/02/09(火) 16:16:16.99 ID:RXmZGByb0.net]
>>605
やってみたらできた
ありがとうございます!!

609 名前:デフォルトの名無しさん mailto:sage [2021/02/09(火) 17:23:48.59 ID:/LZ4DWEX0.net]
いつものあれか

610 名前:デフォルトの名無しさん [2021/02/10(水) 01:23:44.62 ID:nFlUbaHj0.net]
足し算のできないいつもの人か



611 名前:デフォルトの名無しさん mailto:sage [2021/02/10(水) 21:21:46.44 ID:LZ9Af/PB0.net]
良かったよ
プロだらけだったらヤバいスレになるw
趣味と後学のために少しずつやっていたら好きになってきた。
仕事で使う機会あまりないわ

612 名前:デフォルトの名無しさん [2021/02/12(金) 13:51:51.87 ID:IzjdsqjHM.net]
しじいの言う「後学」という単語に哀愁を感じる

613 名前:デフォルトの名無しさん mailto:sage [2021/02/12(金) 15:55:10.24 ID:/wh0XpHtM.net]
Excelの新機能「Lambda関数」によって「Excelの数式がチューリング完全になった」とナデラCEO。プログラミング言語としてのExcel数式であらゆる計算が可能に
https://www.publickey1.jp/blog/21/excellambdaexcelceoexcel.html

614 名前:デフォルトの名無しさん [2021/02/12(金) 16:16:26.53 ID:IzjdsqjHM.net]
チューリングウイルスに期待

615 名前:デフォルトの名無しさん mailto:sage [2021/02/12(金) 17:41:16.52 ID:o9EDytUaM.net]
マクロを10個くらいリボンに登録したらVBEがアドインだらけになってワロタ
どうやらxmlを作って一つのアドインとしてまとめて登録するのがセオリーみたいだな

616 名前:デフォルトの名無しさん mailto:sage [2021/02/12(金) 20:11:52.96 ID:00Lfe/Nd0.net]
>>611
ええええええええええええええええええええええええ

ちょっと驚愕のニュースだ

617 名前:デフォルトの名無しさん mailto:sage [2021/02/12(金) 20:13:11.50 ID:00Lfe/Nd0.net]
つまりもうマクロを四苦八苦して作る必要はないんだな!?

618 名前:デフォルトの名無しさん mailto:sage [2021/02/12(金) 20:18:24.17 ID:00Lfe/Nd0.net]
Excelだ
Excelの時代が来る

619 名前:デフォルトの名無しさん mailto:sage [2021/02/12(金) 20:22:55.94 ID:eP0byIu+0.net]
重さが気になる
便利だけど重くて出来るだけ避けるような関数にならないか

620 名前:デフォルトの名無しさん mailto:sage [2021/02/12(金) 20:59:52.79 ID:jxDcSv/l0.net]
>>611
よくわからんけどVBA使わなくてもユーザー定義関数が書けるようになったのか?
でもそれだけじゃチューリング完全じゃないよね?
誰が説明してくれ…



621 名前:デフォルトの名無しさん mailto:sage [2021/02/12(金) 21:35:08.47 ID:4lNcO7mK0.net]
よくわからんがVBA使わないでってことなら
https://papasensei365.com/excel-game-dq3/

622 名前:デフォルトの名無しさん mailto:sage [2021/02/12(金) 22:07:36.71 ID:aXSnuzkq0.net]
LAMBDA の発表: Excel の数式をカスタム関数に変換する
https://techcommunity.microsoft.com/t5/excel-blog/announcing-lambda-turn-excel-formulas-into-custom-functions/ba-p/1925546

623 名前:デフォルトの名無しさん mailto:sage [2021/02/12(金) 22:29:40.24 ID:aRG7/C7T0.net]
よく分からんけどlet使えてことだろ

624 名前:デフォルトの名無しさん mailto:sage [2021/02/12(金) 22:35:41.83 ID:jxDcSv/l0.net]
>>620
ああ、なるほど名前の一種として関数定義ができるのか
再起を使えばチューリング完全にもなりそうだし、これいいな
ただ、また「(俺が見て)わけのわからん機能は使うな」とか老害に言われるんだろうなw

625 名前:デフォルトの名無しさん [2021/02/12(金) 23:02:00.32 ID:82D6PoJM0.net]
vbaにLinq付けてくれたほうが喜ばれるぞ

626 名前:デフォルトの名無しさん mailto:sage [2021/02/12(金) 23:07:09.02 ID:GpQsWoGq0.net]
Lambdaがファーストクラスオブジェクトなら以下のようなscheme風の無限ループも書ける
((lambda (x) (x x)) (lambda (x) (x x)))
VBAの時代は終わるかも

627 名前:デフォルトの名無しさん [2021/02/12(金) 23:12:05.58 ID:82D6PoJM0.net]
まともなセル内数式エディタは付きますか?

628 名前:デフォルトの名無しさん mailto:sage [2021/02/12(金) 23:18:29.37 ID:00Lfe/Nd0.net]
恐ろしいことにつくらしい
動画紹介でついてた

629 名前: mailto:sage [2021/02/13(土) 01:03:54.87 ID:HkWfV2pEH.net]
>>611
その lambda とやらは、不動点コンビネータを記述できるのですか?

630 名前:デフォルトの名無しさん mailto:sage [2021/02/13(土) 04:07:19.47 ID:yi//B+MQH.net]
セキュリティでVBA禁止にしても、開いた瞬間に固まるブックが簡単に作れてしまうのかな
意図せず無限ループになったらデバッグが大変そう



631 名前:デフォルトの名無しさん mailto:sage [2021/02/13(土) 06:10:57.87 ID:qLIOxiK10.net]
へー
EXCELでLinqやラムダ式が書けるようになるのか
Linqやラムダ式は.Netでも便利だけど
開発者をふるいに掛けているものの一つだから
理解出来ない脱落者はEXCELやVBAの
開発ですら役立たずの烙印を押される
そんなときが来るなんて夢にも思って無かったな

632 名前:デフォルトの名無しさん mailto:sage [2021/02/13(土) 06:48:06.39 ID:qLIOxiK10.net]
あ、なんだ
VBAで使えたりLinqが使えるようになる訳では無いのか
あいつら基本レイトバインディングだからトレースするとき慣れてないと分かり辛いんだよな
良かったなお前ら

633 名前:デフォルトの名無しさん mailto:sage [2021/02/13(土) 07:44:30.44 ID:PYtZn7CJ0.net]
>>628
> セキュリティでVBA禁止にしても、開いた瞬間に固まるブックが簡単に作れてしまうのかな
今でもあるけど計算回数の上限決めて打ち切るでしょ

634 名前:デフォルトの名無しさん mailto:sage [2021/02/13(土) 07:56:56.81 ID:IALcuoUI0.net]
>>627
https://www.microsoft.com/en-us/research/blog/lambda-the-ultimatae-excel-worksheet-function/

LAMBDA is the true lambda that we know and love

you can define a fixed-point combinator

dekiru

635 名前:デフォルトの名無しさん mailto:sage [2021/02/13(土) 11:41:30.80 ID:PelpVnvk0.net]
>>611
どんだけ凄いの?
だれか40歳にもわかるように説明して

636 名前:デフォルトの名無しさん mailto:sage [2021/02/13(土) 12:21:31.92 ID:PYtZn7CJ0.net]
>>633
例えば、A1, B1, C1セルの中身をカンマで繋いでD1に格納したい
その際セルが空なら"[空だよーん]"ってしたいとするでしょ
今までは
D1: =TEXTJOIN(", ", FALSE, IF(A1 = "", "[空だよーん]", A1), IF(B1 = "", "[空だよーん]", B1), IF(C1 = "", "[空だよーん]", C1))
って似たようなIF式を何度も書く必要があったけどLAMBDA使えたら
f: =LAMBDA(x, IF(x = "", "[空だよーん]", x))
って定義しておけば
D1: =TEXTJOIN(", ", FALSE, f(A1), f(B1), f(C1))
って書ける
さらに課長に"[空だよーん]"とかふざけんな、"[空でございます]"にしろって言われてもLAMBDAの1箇所を直すだけで済む

637 名前:デフォルトの名無しさん mailto:sage [2021/02/13(土) 12:41:35.80 ID:BN4b1mTrp.net]
>>633
40のお前がバレンタインデーでチョコ貰えるくらい凄い

638 名前:デフォルトの名無しさん mailto:sage [2021/02/13(土) 12:49:30.81 ID:PelpVnvk0.net]
>>635
(>_<)\

639 名前:デフォルトの名無しさん mailto:sage [2021/02/13(土) 14:07:20.92 ID:IALcuoUI0.net]
ただの関数定義じゃないか

それで十分だった気はするが

640 名前:デフォルトの名無しさん mailto:sage [2021/02/13(土) 15:14:43.31 ID:wz9KaBQo0.net]
VBAに影響ほとんどなさそう
一発でピボ集計とかシート挿入とかに関係ないし



641 名前:デフォルトの名無しさん mailto:sage [2021/02/13(土) 15:33:24.19 ID:QpeYGISo0.net]
と言うかラムダ式書けるなら、ついでにセル内でも数式の改行とインデントができるようにしてくれればよかったのにな
Excel職人のIFだらけの数式を読むのがまずキツイんだは

642 名前:デフォルトの名無しさん mailto:sage [2021/02/13(土) 15:40:56.55 ID:jHG+5C+w0.net]
セルで分ければいいんだけど一つの数式にまとめられるのがすごいと思ってるからな
まあ自分もそうだったけど

643 名前:デフォルトの名無しさん mailto:sage [2021/02/13(土) 17:28:35.52 ID:VP7xI/GI0.net]
単に複数セル使うのが嫌なだけってのが多いように見える

644 名前:デフォルトの名無しさん mailto:sage [2021/02/13(土) 18:42:07.48 ID:yi//B+MQH.net]
まとめて印刷とか名前を付けて保存みたいな手作業を置き換えるVBAはなくならないかな

645 名前:デフォルトの名無しさん mailto:sage [2021/02/13(土) 19:19:56.21 ID:PYtZn7CJ0.net]
>>639
> セル内でも数式の改行とインデントができるようにしてくれればよかったのにな
それ昔からできるぞ…
https://www.becoolusers.com/excel/img/long-formula-line-break20.png

646 名前:デフォルトの名無しさん mailto:sage [2021/02/13(土) 19:28:08.81 ID:jHG+5C+w0.net]
営業の要ミーティング恐い((((;゚Д゚)))))))

647 名前:デフォルトの名無しさん mailto:sage [2021/02/13(土) 21:29:40.36 ID:T3s5Sft8d.net]
>>639
普通にやってるけど。
読むのキツイんだろ。

648 名前:デフォルトの名無しさん mailto:sage [2021/02/13(土) 21:48:38.47 ID:wz9KaBQo0.net]
うかる!って、説明ヘタだね…

649 名前:デフォルトの名無しさん mailto:sage [2021/02/13(土) 22:16:40.52 ID:OlVotr6u0.net]
職場にIf and orの職人がいるオレに謝れ

650 名前:デフォルトの名無しさん mailto:sage [2021/02/13(土) 23:44:53.12 ID:29TtheM20.net]
んー? 今までセル内の数式って受身の動きだったけど
それ実装すれば自発的に動けるようになるってこと?



651 名前:デフォルトの名無しさん mailto:sage [2021/02/14(日) 00:40:24.25 ID:X0FsHGir0.net]
>>643
まじか、しらんかったわ
勝手にスペース削られたりするもんだと思ってたわ。。

652 名前:デフォルトの名無しさん mailto:sage [2021/02/14(日) 00:53:19.53 ID:D24G58JB0.net]
>>648
自発的には動かないよ
今まではVBAでしかユーザー定義関数は作れなかったけどVBA使わなくても作れるって言うだけ
ただマクロを有効にする必要がないから実務としてはそれなりに意味はある

653 名前:デフォルトの名無しさん mailto:sage [2021/02/14(日) 00:53:54.05 ID:D24G58JB0.net]
>>649
まあ俺もつい1年ぐらい前に知ったんだけどw

654 名前:デフォルトの名無しさん mailto:sage [2021/02/14(日) 05:33:27.25 ID:8cTA8eHd0.net]
それよりかパイプライン演算子を実装して欲しい
ラムダ関数はその足掛かりな気もするけど

655 名前:デフォルトの名無しさん mailto:sage [2021/02/14(日) 08:25:32.74 ID:0LuW/JvdM.net]
セルの書式を調べる関数はよ

656 名前:デフォルトの名無しさん mailto:sage [2021/02/14(日) 09:01:53.08 ID:D24G58JB0.net]
>>653
Cell("format", a1) じゃ駄目なの?
https://dekiru.net/article/4431/

657 名前:デフォルトの名無しさん mailto:sage [2021/02/14(日) 09:44:10.83 ID:9bE5PNm50.net]
EXCELって意外と古いの使ってたりするから受け渡しがどうかな

658 名前:デフォルトの名無しさん mailto:sage [2021/02/14(日) 09:46:12.37 ID:HYvJ8gAi0.net]
>>652
一部がダメ文字の文字コード

659 名前:デフォルトの名無しさん mailto:sage [2021/02/14(日) 10:33:56.69 ID:ccxL17vjM.net]
>>654
ああごめん
表示形式以外の書式ね
色とかフォントとか罫線とか

660 名前:デフォルトの名無しさん mailto:sage [2021/02/14(日) 10:46:19.10 ID:IPhvN32f0.net]
もしかして >>653
データの「表示形式」だけでなくて
フォントや横位置/縦位置、塗りつぶし、罫線なんかの戻り値が欲しいのかしら?



661 名前:デフォルトの名無しさん mailto:sage [2021/02/14(日) 10:47:17.03 ID:IPhvN32f0.net]
ありゃ。本人からの返事の方が早かった

662 名前:デフォルトの名無しさん mailto:sage [2021/02/14(日) 11:28:53.22 ID:D24G58JB0.net]
>>657
4.0マクロ関数でどうぞ
https://blog.goo.ne.jp/koyaman2/e/58506c9b0f18f1577aa694ab4af30edf

663 名前:デフォルトの名無しさん mailto:sage [2021/02/14(日) 16:36:27.43 ID:W30Sj/2D0.net]
VBAはSelectのCaseで、False,Empty,Nullあたりが同一判定されて、個々に行えないのがクソ

664 名前:デフォルトの名無しさん mailto:sage [2021/02/14(日) 17:23:19.56 ID:D24G58JB0.net]
>>661
VarTypeも知らない僕はアホです
っていうカミングアウトか?

665 名前:デフォルトの名無しさん mailto:sage [2021/02/14(日) 19:08:55.75 ID:hT3ZVIIc0.net]
ねこ

666 名前:デフォルトの名無しさん mailto:sage [2021/02/15(月) 11:39:26.92 ID:S0ZRmbKV0.net]
DIR関数を利用して以下のりようなロジックを見たのですが、
foldercheck = (Dir(wrkpath, vbDirectory) <> "")

()の中のロジックはどのような技法なんでしょうか
if Dir(wrkpath, vbDirectory) <> " then

667 名前:664 [2021/02/15(月) 13:15:47.99 ID:S0ZRmbKV0.net]
https://docs.microsoft.com/ja-jp/office/vba/language/reference/user-interface-help/comparison-operators

Dim MyResult, Var1, Var2
MyResult = (45 < 35) ' Returns False.
MyResult = (45 = 45) ' Returns True.

自己解決しました。上記と同じなのですね。お騒がせしました。

668 名前:デフォルトの名無しさん [2021/02/15(月) 19:45:33.20 ID:olEKN+utr.net]
フォルダへの書き込みのアクセス権をチェックするようなサンプルないですかね。


イメージとしてはフォームのフォルダ選択ボタンを押して選んだフォルダが書き込みできなければ選んだ時点でそういうメッセージを出したい。このあとアウトプットフォイルを書き込む際にエラーが出る前に

669 名前:デフォルトの名無しさん mailto:sage [2021/02/15(月) 20:10:33.97 ID:xaJaofAeH.net]
>>666
まじめにやるならGetFileSecurityとGetAclInformationを使う
もっと簡単にやりたかったら、ダミーのファイルを1つ作ってみてOn Errorでエラーになったかどうか判定

670 名前:デフォルトの名無しさん mailto:sage [2021/02/15(月) 20:15:42.96 ID:nKU68rXI0.net]
FSOのGetFileでフォルダーを取得して
Attlibutesプロパティ見ればいいんでないかな



671 名前:デフォルトの名無しさん mailto:sage [2021/02/15(月) 20:16:42.83 ID:nKU68rXI0.net]
>>668訂正
GetFile → GetFolder
だった

672 名前:デフォルトの名無しさん [2021/02/15(月) 20:30:32.32 ID:btvLdCUB0.net]
>>668
いいわけないだろw

そもそもフォルダのR属性は他の用途に使われている

673 名前:デフォルトの名無しさん mailto:sage [2021/02/15(月) 22:00:51.83 ID:iJ9piVTy0.net]
普通にicacls呼べばいいじゃん

674 名前:デフォルトの名無しさん mailto:sage [2021/02/15(月) 22:59:53.76 ID:R4sT9O4+0.net]
>>662
いや、それだと0と1がIntegerとしか返ってこないし、
TrueとFalseもBooleanとしか返ってこないから判定できないだろ。バカかお前?

675 名前:デフォルトの名無しさん mailto:sage [2021/02/15(月) 23:48:13.25 ID:yTkZToOt0.net]
isnullはあったよなたしか

676 名前:デフォルトの名無しさん mailto:sage [2021/02/16(火) 02:55:26.52 ID:nbeJO0KhM.net]
CSV形式で保存する前に、Serial値の表示形式をyyyy/m/dにマクロから変更して
保存してからその後開くと、"1/1/2020"とか意味分からんStr型になっちゃうんだけど、
誰か分かるひといる?
csvを取り込むソフトがどうしてもこの表示形式に変更しないと、うまく取り込めない謎仕様なんだ。
ちなみに、いったん保存してから開いてやってもダメだった。
(もちろん、手作業で開いて表示形式変更したらバグらないんだけど・・・)

rngObj.NumberFormatLocal = "yyyy/m/d"

677 名前:デフォルトの名無しさん mailto:sage [2021/02/16(火) 07:43:45.82 ID:+oOyZ54g0.net]
>>672
型を判定してから値を判定すりゃいいだけだろ
応用力ないのか?

678 名前:デフォルトの名無しさん mailto:sage [2021/02/16(火) 10:30:54.61 ID:OCcCJKsW0.net]
整数の1と小数の1.0だと値(バイナリ)が違うって知ったら狂いそうだな

679 名前:デフォルトの名無しさん mailto:sage [2021/02/16(火) 11:04:29.70 ID:+oOyZ54g0.net]
>>674
いま手元にExcelないから確認できないけど
rngObj.NumberFormat = "yyyy/m/d"

book.SaveAs …, Local:=True
に、してみたらどうかな

680 名前:デフォルトの名無しさん mailto:sage [2021/02/16(火) 11:41:24.25 ID:XpWP4Lg+0.net]
2021/2/15 6:43

みたいに、時間が入ったセルの、
日付の部分
だけ変えたいんですがやり方がわからないです

セルの日付(2021/2/15)を変数で定義して、新たな日付(2021/2/16)の変数も定義して
replace(セルの位置,セルの日付,新たな日付)
で入れ替えようとすると型が合わないって出てしまうのですが
どうすればいいでしょうか?



681 名前:デフォルトの名無しさん mailto:sage [2021/02/16(火) 11:56:30.35 ID:S5ddSisTa.net]
>>678
もしかして変数で定義してる型がDateだったり?

682 名前:デフォルトの名無しさん mailto:sage [2021/02/16(火) 11:58:31.61 ID:XpWP4Lg+0.net]
>>679
dateとstring両方試しました

683 名前:デフォルトの名無しさん mailto:sage [2021/02/16(火) 12:13:25.96 ID:9n1pp/97M.net]
CStr(Format(a,″yyyy/m/d“))

684 名前:デフォルトの名無しさん mailto:sage [2021/02/16(火) 12:24:02.20 ID:XpWP4Lg+0.net]
すいません自己解決しました
変数の定義がおなしかったみたいです

685 名前:デフォルトの名無しさん mailto:sage [2021/02/16(火) 13:04:12.03 ID:nbeJO0KhM.net]
>>677
いけましたサンクス!!!

686 名前:666 [2021/02/16(火) 19:15:33.72 ID:+pX1epGPr.net]
遅くなりましたが、結局Dummyファイルの書き込みにしました。アドバイス頂いた方ありがとうございました。

687 名前:デフォルトの名無しさん mailto:sage [2021/02/16(火) 21:00:08.21 ID:PQjj23xSa.net]
スミマセン、セルの特殊な機能だと思うのですが、

セルにポインタを合わせると、セルの外側右下に小さな▼が出現、
▼を押すとセルの下に小さなウィンドウが展開し、羅列された文字や数字を選択できる。

上記機能の名称とは何なのか、
どこでイジれるのか、作成できるのか等わからず困ってしまいました。

機能が生きているセルもありましたため、
新規で作成せずともその機能をコピーしようともしましたが方法わからず。

お詳しい方いらっしゃいましたら
お力添え願いたいです。

失礼します。

688 名前:デフォルトの名無しさん mailto:sage [2021/02/16(火) 21:24:43.99 ID:kmFmEkS70.net]
VBAとは関係なく
「セルの入力規則」から「リスト」を選択してあとは適宜
詳細は上記キーワードで検索して

689 名前:デフォルトの名無しさん mailto:sage [2021/02/16(火) 22:46:03.00 ID:g3oiZXVYr.net]
教えていただけると助かります。
VBAでIEからExcelに文章を写したいです。
アクティブなIEからカーソルで範囲指定して、その内容を写すことは可能なのでしょうか?

例えば、ヤフーで気になる記事の内容だけをコピペといった感じです。
気になるものだけなので、検索を入れ込む必要はないです。

IEとYahoo起動まではできるのですが、その先が分かりません。

よろしくお願いいたします。

690 名前:デフォルトの名無しさん mailto:sage [2021/02/16(火) 23:02:29.70 ID:LtHH0x/40.net]
それ手動でコピペしたほうが早いんじゃね



691 名前:デフォルトの名無しさん mailto:sage [2021/02/16(火) 23:41:10.89 ID:5LT5VcGn0.net]
気になる記事の条件は?
それを自分で判断するなら>>688が正解だと思うが

692 名前:デフォルトの名無しさん mailto:sage [2021/02/17(水) 09:01:14.53 ID:tQXaEzsv0.net]
>>687
ちったぁググれ
https://konowaza.com/excel/copy_paste_macro.html

693 名前:デフォルトの名無しさん mailto:sage [2021/02/17(水) 10:16:38.01 ID:vOoN+LpT0.net]
>>690
優しすぎる

694 名前:デフォルトの名無しさん mailto:sage [2021/02/17(水) 12:53:19.33 ID:3Z4/s25m0.net]
>>686
ありがとうございますm(_ _)m
トライします。

695 名前:デフォルトの名無しさん mailto:sage [2021/02/17(水) 12:57:54.00 ID:quEf8nPTr.net]
いえいえ

696 名前:デフォルトの名無しさん mailto:sage [2021/02/17(水) 12:59:55.94 ID:Mp3MtPnAH.net]
クリップボードを監視して、新しいデータがコピーされるたびに保存してくれるアプリとか使えばいいんじゃない?
いちいちウィンドウを切り替えたりペーストしなくていいやつあるだろ

697 名前:デフォルトの名無しさん mailto:sage [2021/02/17(水) 15:46:44.57 ID:i293dZUhd.net]
>>686
機能が生きているセルを上記指南で解析し、
貼り付けで解決しました!
助かりました。
ありがとうございました!

698 名前:デフォルトの名無しさん mailto:sage [2021/02/17(水) 22:01:12.58 ID:YnE2/fOB0.net]
最終列までコピーをしたいんですがエラーを繰り返しなかなか実現できません…
例えばA3セルがデータの始まりでA7セルが最終列の場合、以下の文になるかと思いますRange(“A3:A7”).copy

ただ、半年に一度最終列が一列追加になるので、メンテナンスしなくていいように上の文のA7の部分が最終列になるようにしたいです

この場合何かいい方法はあるでしょうか

699 名前:デフォルトの名無しさん mailto:sage [2021/02/17(水) 22:41:15.13 ID:FtApzB1S0.net]
行じゃなくて列?

700 名前:デフォルトの名無しさん mailto:sage [2021/02/17(水) 22:42:03.66 ID:tZ0yQ1Z/0.net]
オーソドックスなのはこれだけど、物凄い珍回答を聞いてみたいわ
Range("A3:A" & Cells(Rows.Count, 1).End(xlUp).Row).Copy



701 名前:デフォルトの名無しさん mailto:sage [2021/02/17(水) 22:45:44.66 ID:LXOFF6tt0.net]
>>696
last_row = Sheet1.UsedRange.Row + Sheet1.UsedRange.Rows.Count - 1
last_col = Sheet1.UsedRange.Column + Sheet1.UsedRange.Columns.Count - 1
Debug.Print "A3:" & Sheet1.Cells(last_row, last_col).Address(RowAbsolute:=False, ColumnAbsolute:=False)

こんなん?

702 名前:デフォルトの名無しさん mailto:sage [2021/02/17(水) 22:46:54.85 ID:bJ7UNxEFr.net]
>>690

ありがとうございます❗
探してたものに出会えました。
ググってはみたんですが、このサイトには巡り会えなかったので、本当に助かります。
やってみたら、思う結果になりました。
ありがとうございました。

703 名前:デフォルトの名無しさん mailto:sage [2021/02/17(水) 22:47:30.28 ID:YnE2/fOB0.net]
行じゃなく列です
最終列が半年に一回追加になるのです…

704 名前:デフォルトの名無しさん mailto:696 [2021/02/17(水) 22:50:45.05 ID:YnE2/fOB0.net]
>>697
ごめんなさい、最終列の話だったのでA3セルからD3セルをコピーする場合、以下になるんでした
Range(“A3:D3).copy
今はD3が最終列ですが、半年後にはD3が最終列になるイメージです

705 名前:696 mailto:sage [2021/02/17(水) 22:51:42.12 ID:YnE2/fOB0.net]
何度も間違えてすみません…
今はD3が最終列ですが半年後にはE3が最終列になるの間違いでした

706 名前:デフォルトの名無しさん mailto:sage [2021/02/17(水) 22:55:52.03 ID:X7VrF3DN0.net]
最終列取得の仕方調べないの?

707 名前:デフォルトの名無しさん mailto:sage [2021/02/17(水) 23:06:07.99 ID:FtApzB1S0.net]
Range("A3").CurrentRegion.Copy

708 名前:デフォルトの名無しさん mailto:sage [2021/02/17(水) 23:08:53.17 ID:ooyd3US+0.net]
ColLst = Sheet1.Сells(3,Columns.Count).End(xIToLeft).Column
Range(Sheet1.Cells(3,1),Sheet1.Сells(3,ColLst))
みたいにケツのColumnIndexを可変化させりゃええ
指定範囲より右側にコメントが入るのであれば別の方法を考える必要があるけど

709 名前:デフォルトの名無しさん mailto:sage [2021/02/17(水) 23:09:11.52 ID:LXOFF6tt0.net]
CurrentRegionは使えそうで使わない

710 名前:デフォルトの名無しさん mailto:sage [2021/02/17(水) 23:16:43.14 ID:FtApzB1S0.net]
UsedRangeだって使うの怖ない?
どっかにドットあるだけども持ってかれる



711 名前:デフォルトの名無しさん mailto:sage [2021/02/17(水) 23:18:02.78 ID:tZ0yQ1Z/0.net]
これってやり方は何通りかあるけど、
どの状況でも使える完璧なのが無いよな
一見よさげなUsedRange.Find法とかも、
検索と置換の状態が変わっちゃうし

712 名前:デフォルトの名無しさん mailto:sage [2021/02/17(水) 23:21:06.27 ID:LXOFF6tt0.net]
ちゃんとやりたい場合列のヘッダの名前の有無を確認とか意味解析するしかないよ

713 名前:デフォルトの名無しさん mailto:sage [2021/02/18(木) 00:18:06.29 ID:ZQty99yr0.net]
vbaしかつかえないうんちなんだけど、ダイアログに変数名入れたら、その名前を反映させた定型コード作ってくれるような支援ソフトないの?
たとえば、Dim var: var= xとかFor i=LBound(arr) to UBound(arr)とか。いちいちめんどい。
cliborはつかってる。スレチだったらすまそ。

714 名前:デフォルトの名無しさん mailto:sage [2021/02/18(木) 02:16:18.22 ID:QcGF+jUk0.net]
それこそ自分で作れよ
自分だけにに都合よく自動化したいならそれしかないだろ

715 名前:デフォルトの名無しさん mailto:sage [2021/02/18(木) 08:21:36.53 ID:sd++046d0.net]
>>711
そういうの別言語だと見たことあるけど
VBAでは諦めた方がいいんじゃないかなぁ
https://mobile.twitter.com/johnsundell/status/1221758718188060673
こういう奴でしょ?
(deleted an unsolicited ad)

716 名前:696 mailto:sage [2021/02/18(木) 08:30:28.40 ID:0xKDo7Uv0.net]
最終列の取得をしてコピーしたいと申した者です
具体的には2シート目以降のC8セルから最終列までコピペしたくこのような文を書いてました

Maxcol = Worksheets(1).Range(“C8”).End(XlToRight).Column

For i = 2 To Worksheets.Count
Worksheets(i) = Range(Cells(8,3), Cells(8, Maxcol)).Copy
Worksheet(1).Cells(Maxrow,1).PasteSpecial Paste:=xlPasteValues
Maxrow = Maxrow + 1
Next i

上には書いていませんがMaxRowで最終行していて、1シート目の最終行にペーストするイメージです

このとき以下の箇所でエラーになりました

Worksheets(i) = Range(Cells(8,3), Cells(8, Maxcol)).Copy

717 名前:デフォルトの名無しさん mailto:sage [2021/02/18(木) 08:31:50.99 ID:cssKdxraM.net]
>>713
やっぱVbaだと厳しいか、、、別言語だとこんなのあるんだな!ありがとう。

718 名前:696 mailto:sage [2021/02/18(木) 08:45:37.53 ID:0xKDo7Uv0.net]
解決しました…
Rangeの中にCellsを入れる際はCellsの方にもワークシート名を記載してあげなければいけなかったんですね…
お騒がせしました

719 名前:デフォルトの名無しさん [2021/02/18(木) 10:27:10.11 ID:4sNPnSsIM.net]
4点指定でrange作れればいいのにね

720 名前:デフォルトの名無しさん mailto:sage [2021/02/18(木) 13:38:16.10 ID:EVRbmhyV0.net]
>>717
まあ、
Sheet.Cells(開始行, 開始列).Resize(行数, 列数)
もしくは
Sheet.Cells(開始行, 開始列).Resize(終了行 - 開始行 + 1, 終了列 - 開始列 + 1)
ってやるだけだし



721 名前:デフォルトの名無しさん mailto:sage [2021/02/18(木) 17:41:06.06 ID:Khd0zmwWM.net]
>>714
これで動くのか
それならまあいいけども

722 名前:デフォルトの名無しさん mailto:sage [2021/02/18(木) 20:47:31.34 ID:Sdz2Rpjn0.net]
コンパイルしたときに「ユーザー定義型は使用できません」といったようなエラーが出るのですが、
エラー箇所が選択されず特定できません。
ググってみたのですが「関数を一個ずつ切り貼りしながらコンパイル」的な記事しかなく、
結構大きなプロジェクトファイルになってしまっていて現実的ではありません。

原因って何が考えられますでしょうか。

723 名前:デフォルトの名無しさん mailto:sage [2021/02/18(木) 21:08:20.83 ID:QcGF+jUk0.net]
情報が少なすぎるだろ
で、ユーザー定義型を使ったの?

724 名前:デフォルトの名無しさん mailto:sage [2021/02/18(木) 21:48:45.33 ID:sd++046d0.net]
>>720
VBAでは珍しいかも知れないけど
VBSではよくある話
実行前コンパイルの概念がないからね

別に1関数単位で抜かなくても
纏めてごっそり抜いてみて
エラーが発生しなくなったら
残った部分には原因がなくて
抜いた部分に原因があるんで
まずそうやって切り分ける

抜いた部分から半分くらい戻してやって
またエラーが起きないか確認するのを
繰り返して行く内に
原因の可能性がある範囲はどんどん狭まるんで
そうやって確認して行く

725 名前:デフォルトの名無しさん mailto:sage [2021/02/18(木) 21:52:25.45 ID:sd++046d0.net]
原因として考えられるのは
ない型を指定した場合なので
型宣言の書き間違えとかかな

726 名前:デフォルトの名無しさん mailto:sage [2021/02/18(木) 21:59:48.04 ID:Sdz2Rpjn0.net]
>>721
使ってます。
また、クラスモジュールやライブラリも沢山使ってます。
以前なら間違っている名前の箇所が選択されるので、直ぐに原因が特定できたのですが・・・

>>722
今、出来る範囲でモジュールを解放・インポートを繰り返して検証して見たのですが、
フォームモジュールのいくつかが原因の様で、これらを抜くとコンパイル(実行前コンパイル)が成功します。
ただ、その原因と思われるモジュール内の全てのコードを削除しても同じエラー発生します。
意味が分かりません・・・

727 名前:デフォルトの名無しさん [2021/02/18(木) 22:36:52.79 ID:Xk2lzcuAM.net]
フォーム内のエラーはフォーム呼び出しコードが選択されるから、F8の手押し連打で進めて行けばエラー箇所で止まるんじゃね

728 名前:デフォルトの名無しさん mailto:sage [2021/02/18(木) 23:05:06.07 ID:jY4O/2kG0.net]
いつもの人っぽいけど、クラスモジュールでエラー止める設定すれば分かるかもしれん

729 名前:デフォルトの名無しさん mailto:sage [2021/02/18(木) 23:14:40.89 ID:Oj+90OvE0.net]
>>726
シートに書くとエラーの場所がわからないから標準モジュールに書け、
なんて書いてるサイトがあって、その解決策しばらく気づかなかったわ

730 名前:デフォルトの名無しさん mailto:sage [2021/02/18(木) 23:38:17.80 ID:chyUcvsN0.net]
ズボラせず1個ずつちゃんと調べなよ



731 名前:デフォルトの名無しさん mailto:sage [2021/02/19(金) 00:07:23.60 ID:3RXIcFsGH.net]
DimとかConstとかでタイプミス
SubやFunctionの宣言部でもよくある
Visual StudioでVB.netプロジェクトを作ってコピペで発見できる場合もある

732 名前:デフォルトの名無しさん mailto:sage [2021/02/19(金) 03:59:43.95 ID:fFtIagGX0.net]
>>725,726
実行時例外じゃないです。

>>728
>>724の通り、発生元と思われるモジュール内コードを全て削除しても発生し、
モジュール自体を解放すると発生しなくなるため悩んでいます。
私も一個づつ調べたいのですが、もはや調べ方も分からない状況です・・・。

>>729
宣言文のタイプミスでも、通常はエラーが発生すれば原因箇所が選択(反転)されると思いますが、
今回はそのエラー箇所の選択がなく困っています。

vscodeですがVB.netプロジェクトへのコピペもやってみましたが、
関係のないエラーや注意が大量発生して特定困難でした。
というか互換性ないと聞いたのですが・・・

733 名前:デフォルトの名無しさん mailto:sage [2021/02/19(金) 04:14:33.39 ID:fFtIagGX0.net]
お礼言うの忘れてました。
沢山回答ありがとうございます。
些細な事柄でも気になる点があればレス欲しいです。

一応質問内容をまとめます
・エラーが発生しているのはコンパイル時です
・通常あるエラー発生箇所の選択がされません(この「発生個所が選択されないという現象」自体の原因も調べています)
・原因と思われるクラスモジュールを解放すると発生しなくなります
・しかし、そのモジュール内のコードを消すだけでは引き続き発生します

734 名前:デフォルトの名無しさん mailto:sage [2021/02/19(金) 05:06:58.61 ID:UOwA+kJV0.net]
なるほど
つまりVBAのコード側の問題ではないと

詳しい状況が分からんから何とも言えんけど
考えられる状況としては
・ファイルがぶっ壊れてる
・フォーム側に使ってるバージョンにそぐわないオブジェクトが設定されている
・使ってるバージョンにそぐわないAPIとかが使用されている
・何か変な参照設定切ってそれを使ってる

とかじゃない?

クラスとかライブラリ(何をもってライブラリと言ってるのかは分からんけど)使ってて
結構大きなプロジェクトファイル使ってると言うなら
元々動いてたものだったと思うんだけど
今改修を掛けているものが同じ環境下(EXCELのバージョンとか使ってるならランタイムとかが同じ)
で動くか確認した方がいいんじゃないかと思うよ

735 名前:デフォルトの名無しさん mailto:sage [2021/02/19(金) 05:44:12.15 ID:6sfyeCMi0.net]
>>731
クラスモジュールを開放したあと、同名のクラスモジュールを空で新規追加したらどうなるの?
そのクラスモジュールの名前は何?

736 名前:デフォルトの名無しさん mailto:sage [2021/02/19(金) 14:25:58.33 ID:fFbWPHDZ0.net]
ユーザ定義型は定義されていません

737 名前:デフォルトの名無しさん mailto:sage [2021/02/19(金) 21:58:08.64 ID:p5a0AjpTa.net]
>>724
インポートとかすると改行や全角空白、タブ、eofとかがおかしいのが入ることあるよ

738 名前:デフォルトの名無しさん mailto:sage [2021/02/19(金) 23:14:07.14 ID:FBAC49/30.net]
ぶっちゃけ原因不明でコードを新規ブックにそのままコピペしたら動いたってのは何度かあった
理由がわからんだけだったのかもしれないけど

739 名前:デフォルトの名無しさん mailto:sage [2021/02/20(土) 00:17:20.20 ID:/mom05J70.net]
怪しい辺りを切り取り貼り付けで直るパターンもあった

740 名前:デフォルトの名無しさん mailto:sage [2021/02/20(土) 02:39:20.18 ID:exEQDxd80.net]
エクスポートして新規ブックでインポートしてどうなるか試せ

そのクラスモジュールとやらをどっかに張ればなんかわかるかもしれん



741 名前:デフォルトの名無しさん [2021/02/20(土) 10:48:29.96 ID:+4W1iOYZ0.net]
帳票でひな形ファイルにDBからのデータを張り付ける際に
ひな形ファイルに前もって用意している一覧より件数が多くなり
一覧部を増やす際って存在している行を必要分コピペしたら処理が重く遅くなりますか?
範囲指定して行の高さや罫線その他書式を作成していくのが普通ですかね

742 名前:デフォルトの名無しさん mailto:sage [2021/02/20(土) 11:52:03.51 ID:FtzhhzvS0.net]
1件ずつコピペしてたら遅くなる可能性があるけど
必要な行数を計算してコピペ1回なら問題にはならんのじゃないかな

743 名前:デフォルトの名無しさん mailto:sage [2021/02/20(土) 13:27:35.51 ID:GLzvS33R0.net]
すげえ基本的な話だけど
2003と2019じゃソースを書き換えないと使えないのはわかるけど
2015と2019は使えるの?

744 名前:デフォルトの名無しさん mailto:sage [2021/02/20(土) 18:00:11.01 ID:M8GDG/5fa.net]
自分で試せばいいのに

745 名前:デフォルトの名無しさん mailto:sage [2021/02/20(土) 20:13:12.43 ID:OBWJcVSW0.net]
書き換えないといけないところが分かるなんてすごい実力者だね

746 名前:デフォルトの名無しさん mailto:sage [2021/02/21(日) 00:07:25.30 ID:J4wkOwtc0.net]
複数バージョン持ってないと試せんだろう

747 名前:デフォルトの名無しさん mailto:sage [2021/02/21(日) 00:25:53.91 ID:yZKJ3RszM.net]
どっちでも動くように作るのさ

748 名前:デフォルトの名無しさん mailto:sage [2021/02/21(日) 02:57:17.71 ID:PfdFyViG0.net]
持ってないバージョンで動かないかもとか考えなくてもよくね

749 名前:デフォルトの名無しさん mailto:sage [2021/02/21(日) 03:11:53.20 ID:NVBTtkD2H.net]
逆に、2019だけで動くようにしろと言われてもできる気がしない
わざと追加されたワークシート関数を使うみたいな、手段と目的を逆転させるのは無しで
そんなに言語仕様って変わってたっけ?

750 名前:デフォルトの名無しさん mailto:sage [2021/02/21(日) 03:19:27.77 ID:BLnKvBaX0.net]
VBAの言語仕様なんて、64ビット対応しか変わってないだろ
EXCELのアプリケーションモデルは多少の変化はあったかもしれんが



751 名前:デフォルトの名無しさん mailto:sage [2021/02/21(日) 09:10:45.20 ID:Mdn5KR7p0.net]
基本使えるだろうけど
365のは分からん

752 名前:デフォルトの名無しさん mailto:sage [2021/02/21(日) 09:54:57.69 ID:E7dwtz5J0.net]
2019未満は切り捨てるためにわざと2019仕様に変更とか
わからん

753 名前:デフォルトの名無しさん mailto:sage [2021/02/21(日) 18:05:27.14 ID:bOGV4XR6a.net]
古いのいつまでも使われると新しいの売れないからかな

754 名前:デフォルトの名無しさん mailto:sage [2021/02/22(月) 11:45:30.79 ID:FCcJxvZt0.net]
>>747-748
動かなくなる原因は言語仕様だけじゃないよ
2007 辺りでグラフ周りがかなり変更されてソースに手を入れる羽目になったとかある

755 名前:デフォルトの名無しさん mailto:sage [2021/02/22(月) 13:18:52.42 ID:kOquHQc20.net]
そうっすか

756 名前:デフォルトの名無しさん mailto:sage [2021/02/22(月) 17:32:51.40 ID:/Yenw0XZd.net]
>>752
正にそれ結構大変だった。

757 名前:デフォルトの名無しさん mailto:sage [2021/02/24(水) 00:40:47.03 ID:HDXsWzJB0.net]
VB長けてる人ってExcelの機能関数に疎い人多いね
田中に聞けば?

758 名前:デフォルトの名無しさん mailto:sage [2021/02/24(水) 01:26:36.59 ID:QrJrBlgW0.net]
Worksheetfunction使うのでそれはない。

759 名前:デフォルトの名無しさん mailto:sage [2021/02/24(水) 02:17:27.39 ID:CQQJwOCp0.net]
2019欲しいけど
いまクソ高いんだよな
昔は10000ぐらいで買えたよな?

760 名前:デフォルトの名無しさん mailto:sage [2021/02/24(水) 02:42:57.68 ID:+tup+0KC0.net]
今でも1000円で…



761 名前:デフォルトの名無しさん mailto:sage [2021/02/24(水) 02:59:15.91 ID:CQQJwOCp0.net]
割れは怖くて使えんわ

762 名前:デフォルトの名無しさん [2021/02/24(水) 14:09:58.51 ID:HLiwO+Yd0.net]
64bitで未定プログレスバー使うにはどうすればいいの?

763 名前:デフォルトの名無しさん mailto:sage [2021/02/24(水) 19:44:17.34 ID:CpCHMr0L0.net]
オレの2019はアマゾンで900円くらいだ

764 名前:デフォルトの名無しさん [2021/02/25(木) 21:11:18.01 ID:u/u+FiSza.net]
原本となるシートでマクロが動いて欲しくないからマクロを搭載した別ブックのシートにコピーしようとしてるのだけど、activeXコントロールのコピーで詰んでいる。
selectAllすると位置がずれる、ネットで見かけるfor each x in sheets.Shapes方式だと「rangeクラスのTopプロパティを設定できません」とか出る(原因分からないうえ、同じものが複数コピーされてたりする)
Clickメソッド使ってるからシート自体に記述しなくちゃならない状態(原本にマクロを搭載できない理由でもある)

原本をコピーした新しいシートにマクロを転写する方法か、activeXコントロールをうまくコピーする方法などをどなたか分かれば教えてください。
よろしくお願いします

765 名前:デフォルトの名無しさん mailto:sage [2021/02/25(木) 21:28:47.82 ID:mAZPOqOP0.net]
俺はファイルコピーで解決しようとするから知らんわ

766 名前:デフォルトの名無しさん mailto:sage [2021/02/25(木) 22:14:57.96 ID:zfgrXATG0.net]
シートコピーしたら

767 名前:デフォルトの名無しさん mailto:sage [2021/02/25(木) 23:11:51.37 ID:h5Yd8P0i0.net]
デザインモードじゃないから梃子でも動かないって意味か?

768 名前:デフォルトの名無しさん mailto:sage [2021/02/26(金) 03:13:02.34 ID:RTjFElvVH.net]
>>762
ブックを別名で保存してからそっちを開いたら?
コントロールの状態や中身まで含めた完全なコピーが簡単にできるよ

769 名前:デフォルトの名無しさん mailto:sage [2021/02/26(金) 14:42:35.05 ID:uwtwTRSf0.net]
>>760
わいはコントロールやめてユーザーフォームで自作した

770 名前:デフォルトの名無しさん mailto:sage [2021/02/26(金) 18:00:57.54 ID:3R2zb4XV0.net]
>>762
原本はそのままで動くように作っといて、原本をコピーするマクロは原本とは別ファイルにするのが良いんじゃね



771 名前:デフォルトの名無しさん mailto:sage [2021/02/27(土) 04:24:42.64 ID:RGn50kCua.net]
>>764
新しくシートをコピーしたらシートにプログラムが何も書かれてない状態になります(原本に記述されていないから)
シートにシートをコピーしたらコントロールが消えてしまいます(コントロールのコピーに躓いている)
>>766>>768
フールプルーフの観点で原本にプログラムを直接書きづらいんですよね。このツールを使うのも原本を更新するのも私じゃないので…
>>767
フォームなら別のブックにコピーできるし使いたいんですが要件的に使えないんですよね
最初はフォームで動作するものを作ったんですが、いちいちウィンドウが開くのめんどくさいと一蹴されました

あくまでシートにマクロをコピーする方法か、activeXコントロールの綺麗なコピーの方法を探しています。

772 名前:デフォルトの名無しさん mailto:sage [2021/02/27(土) 04:28:43.21 ID:qDfn4Zqt0.net]
>>769
みつかるといいね

773 名前:デフォルトの名無しさん mailto:sage [2021/02/27(土) 08:38:37.65 ID:+dnfLZll0.net]
>>769
出来るけど、セキュリティ的に大問題アリ。
マクロウイルスのやりたいことと一緒だからな。

774 名前:デフォルトの名無しさん mailto:sage [2021/02/27(土) 10:42:13.72 ID:MpvSTRAea.net]
ウイルスの作り方探してるのかな

775 名前:デフォルトの名無しさん mailto:sage [2021/02/27(土) 16:48:22.46 ID:9QiTc1mX0.net]
質問です。
VBAでウィンドウの幅によってレイアウトが変化するページを取り込む方法で詰まっています。

例えば、下記のURLのテーブル「5」をExcelに取り込みたいとします。
しかし、このページはウィンドウの幅を狭くすると「自動レイアウト」になります。
https://www.nankankeiba.com/uma_info/2014104006.do

https://i.imgur.com/EE2hZfE.png

本当はPC固定レイアウトで取り込みたいのですが、下のVBAだと自動レイアウトの方で取り込まれてしまうのですが
どうしたらよろしいでしょうか。
VBA
https://i.imgur.com/tQsJ8fB.png

PC固定のレイアウトで取り込みたいけど、取り込むとこうなる
https://i.imgur.com/106irI4.png

776 名前:デフォルトの名無しさん mailto:sage [2021/02/27(土) 16:50:21.04 ID:9QiTc1mX0.net]
>>773
列や行の関係でPC固定で取り込めるようにしたいのですが、クエリで何か設定などあるのでしょうか

777 名前:デフォルトの名無しさん mailto:sage [2021/02/27(土) 19:51:14.14 ID:qDfn4Zqt0.net]
>>774
よくわからんが内容は正しく取得できているんだから、表示用のシート作って
そっちに2行を1行にまとめて表示させるマクロ書けばいいんじゃね

778 名前:デフォルトの名無しさん mailto:sage [2021/02/27(土) 20:13:53.31 ID:9QiTc1mX0.net]
>>775
実は最近サイトがスマホ用に「自動レイアウト」に対応してリニューアルしたので
もともと作ってあった表示用シートが連れてしまうために「PC固定レイアウト」にしたいのです…

779 名前:デフォルトの名無しさん mailto:sage [2021/02/27(土) 20:25:57.30 ID:Ydjbk0QN0.net]
URLの後ろに何か引数入れればいいんだろうけど、javascript読めんからわからん。
Web系のスレで聞くか、ここでやるんだったらDOM解析してgetElementsByTagNameとかで取得するしかない。

780 名前:デフォルトの名無しさん mailto:sage [2021/02/27(土) 20:28:08.24 ID:9QiTc1mX0.net]
>>777
やっぱりweb系のプログラミング知識がないと無理っぽいですかね
自分はさっぱりなので、そっち系でも聞いてみます。



781 名前:デフォルトの名無しさん mailto:sage [2021/02/27(土) 20:46:04.22 ID:Ydjbk0QN0.net]
ってそれExcel2013?
2019だとどちらも見えていて、
Table4が自動でTable5が固定になっている。

もし2019が使えるなら、QueryTables.Addじゃなくて、
Queries.Addでやってみるといい。

782 名前:デフォルトの名無しさん mailto:sage [2021/02/27(土) 21:38:16.92 ID:9QiTc1mX0.net]
>>779
わあああ!できました!!!
自分のだと、テーブル5だと自動で、テーブル6が固定でした!!
固定と自動でテーブルずらすだけで良かったんですね。
本当に助かりました;;感謝!

783 名前:デフォルトの名無しさん mailto:sage [2021/02/27(土) 21:44:40.46 ID:9QiTc1mX0.net]
なるほどー
URLの違いじゃなくてテーブル数が増えていてテーブルの変更でレイアウトを別々で読み取っていたんですね
今後も参考になる知識でめっちゃタメになりました!
いやーID:Ydjbk0QN0さんの着眼点のおかげで助かりました。感動です

784 名前:デフォルトの名無しさん mailto:sage [2021/02/27(土) 23:59:01.77 ID:W4zZ+WShM.net]
いいってことよ(≧∇≦)b

785 名前:デフォルトの名無しさん mailto:sage [2021/02/28(日) 00:38:35.67 ID:1YMxSz2W0.net]
XMLを取得したあと、要素を取得するためにgetElementByIdを使用する方法は無いでしょうか?
XMLでは仕様上IDの規定が無いのでこのメソッドは無いようですが、
対象にしているデータはIDが重複していない(タグ名は重複)ことが分かっています

786 名前:デフォルトの名無しさん mailto:sage [2021/02/28(日) 08:33:47.20 ID:0O+t6o860.net]
やったことないけどXMLをブラウザーで開いて取得とか

787 名前:デフォルトの名無しさん mailto:sage [2021/02/28(日) 13:49:51.41 ID:0oELj/fSM.net]
>>783
単なる属性値だからxpathで属性検索すればいいんじゃね?

788 名前:デフォルトの名無しさん mailto:sage [2021/02/28(日) 17:16:05.41 ID:1YMxSz2W0.net]
>>785
ごめんなさいこれで出来ました
コーディングミスしてただけだったようで…

789 名前:デフォルトの名無しさん mailto:sage [2021/02/28(日) 23:20:44.51 ID:Kw7HIYRo0.net]
テーブルを使った列転記について質問です。
オートフィルターを使って、
特定条件に合致する列のみを別シートに転記するvbaを作成しています。
検索条件が1件でもヒットすれば、うまく動くのですが、
検索条件の結果が0件の場合、なぜかテーブル内にある全ての列がコピーされてしまいます。
解決方法をご教示いただけたら幸いです。

With Range("A3").ListObject
   .Range.AutoFilter 1, "佐藤"
.Range.AutoFilter 2,"2020"
.Range.AutoFilter 3, "土地"

.ListColumns(4).DataBodyRange.Copy Sheets(2).Range("B12")
.ListColumns(5).DataBodyRange.Copy Sheets(2).Range("D12")
.ListColumns(6).DataBodyRange.Copy Sheets(2).Range("C12")
End With

790 名前:デフォルトの名無しさん mailto:sage [2021/02/28(日) 23:38:01.73 ID:aFXd9lq10.net]
0の時コピペしない



791 名前:デフォルトの名無しさん mailto:sage [2021/03/01(月) 03:56:15.13 ID:eH/icf8Z0.net]
Countifsで、1件以上の時 と
条件分岐させるのが読み返してわかりやすくなるんでね

792 名前:デフォルトの名無しさん mailto:sage [2021/03/01(月) 16:05:10.88 ID:SmQDGBhxa.net]
前回の表示が残っているならメッセージボックスとか出すといいかも

793 名前:デフォルトの名無しさん [2021/03/02(火) 13:09:41.26 ID:hWjLfumtC.net]
(1)A1〜A100セルにそれぞれ0001.txt〜0100.txtという文字列が格納されている
(2)ファイルサーバ上(\\share\txt)に(1)の名前と対応する実際のテキストファイルが格納されている

→この場合、B1〜B100セルの中に(1)と対応する(2)のテキストファイルの中身を自動で入力させたいのですが、どのようにすれば可能でしょうか。。

794 名前:デフォルトの名無しさん [2021/03/02(火) 13:28:23.53 ID:xn7W4wyt0.net]
丸投げか?
まずは自分で作ってみろよ

795 名前:デフォルトの名無しさん mailto:sage [2021/03/02(火) 13:38:46.86 ID:Myd7KGhQ0.net]
先生が添削してくれるみたいです

796 名前:デフォルトの名無しさん mailto:sage [2021/03/02(火) 15:10:40.09 ID:S4zyTxBwM.net]
A1セルに書かれたファイル名を読み取る
そのファイル名を開く
B1セルから書き込む

を繰り返せばいいと思います

797 名前:デフォルトの名無しさん mailto:sage [2021/03/02(火) 17:47:07.08 ID:stzBjdlCH.net]
いつもの人

798 名前:デフォルトの名無しさん mailto:sage [2021/03/02(火) 19:42:52.19 ID:h1fr2K930.net]
>>791
どうでもいいがB1〜B7へは入力じゃなくて出力って言った方がいい

799 名前:デフォルトの名無しさん mailto:sage [2021/03/02(火) 23:19:45.83 ID:yDNF8xvg0.net]
>>791
マクロの自動記録

800 名前:720 mailto:sage [2021/03/03(水) 02:30:35.83 ID:hWQCqBl50.net]
>>720ですが、解決というか悪化したので一から作り直すことにしました。

原因と思われていたフォームモジュールを解放しても常時コンパイルエラーが発生するようになりました。
思い切って順に全て解放しながらコンパイルしてみたところシートを含めた全てのモジュールを
削除して新規シート一枚の状態でも発生する始末です。

>>733
試してみたところ、使用できない文字を使った時と同じ「不正なオブジェクト名」だと怒られます。
(もし重複なら「既に〜使われています」)
コンパイルエラーの原因にある「ユーザー定義型」というのはフォームのモジュール名の事だったのかも・・・
ちなみに原因らしいフォームのモジュール名を変えても同様のコンパイルエラーは発生し、
その新しいモジュール名でも同じ症状が出るようになります。

>>732
>>何をもってライブラリと言ってるのかは分からん

すみません。参照設定にあるCOMコンポーネントの事です。
APIはSleepしか読み込んでおらず、
コントロールもリストボックスとコマンドボタンとオプションボタンのみです。

元の環境で実行も出来ませんでしたが、
テストで色んなモジュールの解放してインポート、モジュール名変更して戻すを繰り返していると、
プロジェクトのコンパイルは同じエラーがでるが、(環境問わず)実行は可能という状態になりました。
コンパイルのテストしかしていなかったのでどのタイミングで実行可能になったのかは分かりませんが、
引き続き調べてみます。



801 名前:720 mailto:sage [2021/03/03(水) 02:46:34.41 ID:hWQCqBl50.net]
>>733
レスに追加です
名前の変更では「不正なオブジェクト名」と出ますが、その名前でのインポートは成功します。
インポート出来れば自由にフォーム名を変更したり戻したりできました。

>>735
見てみましたが、特に変わりはないようです。

>>738
フォームモジュール以外を全部移したところコンパイルが通りました。
同じフォームを作って再発すると怖いので、
フォームに有ったコントロールはシート上に再現して、とりあえずこれで運用してみることにしました。

802 名前:デフォルトの名無しさん mailto:sage [2021/03/03(水) 21:19:07.61 ID:CdcHt2GZ0.net]
シートの中身を初期化しようと、範囲選択してClearcontentしたら処理が滅茶苦茶重くて
他のどの処理よりも一番重いまであります
セルの中身をクリアして真っ新にしたいんですが、軽くなる方法とか削除するのに他のいい方法は何かありますか?

803 名前:デフォルトの名無しさん mailto:sage [2021/03/03(水) 22:01:26.45 ID:x1QDDRPj0.net]
画面更新切ってないとか

804 名前:デフォルトの名無しさん mailto:sage [2021/03/03(水) 22:53:36.00 ID:cY/9Er0+0.net]
場合によってはシートごと削除&同じ名前のシート作成orテンプレで用意していたシートをコピー

805 名前:デフォルトの名無しさん [2021/03/03(水) 23:58:49.06 ID:zTCiutcbd.net]
>>800
Clearcontentsじゃなくて単に「削除」に時間が掛かってるだけ説。
どうしようもないExcelのバグ、俺もこの前株シミュレーター作ってて直面した。
たかだが3万行×1列消すのに10分掛かる糞仕様。
どういうわけかD列とE列に入っているがD列を消してからだとE列が、E列を消してからだとD列がそうなる。
2007と2013入れてたがどちらでも同じ結果。スプレッドシートでならサクっと消せた。

806 名前:デフォルトの名無しさん mailto:sage [2021/03/04(木) 00:37:39.40 ID:0V1y42950.net]
質問させてください
業務用PCのためDsoFramerのインストールを容易には出来ない環境で、ユーザーフォームにワークシートを表示するシステムを作成するのは厳しいでしょうか

807 名前:デフォルトの名無しさん mailto:sage [2021/03/04(木) 02:10:45.74 ID:EcELbNCH0.net]
レスありがとうございます
画面更新は勿論切ってます
ただ初期化したいだけなのにアホみたいに時間が掛かるので、同じ使用のシートを作る処理にする事も検討します

808 名前:デフォルトの名無しさん mailto:sage [2021/03/04(木) 06:47:21.46 ID:yRtnuXOv0.net]
変数に入れてから消すとか、同じ選択範囲の配列(空白)ぶっこんでみてもだめかな

809 名前:デフォルトの名無しさん mailto:sage [2021/03/04(木) 10:44:48.81 ID:B7/1q6yvH.net]
一気に何万行も消さずに100行ずつとか小分けしたら軽くなったりしないのかな

810 名前:デフォルトの名無しさん mailto:sage [2021/03/04(木) 10:49:05.92 ID:1zCrSMV60.net]
ClearContentsで重かったことなんてないなあ。
めんどくさくてVBAじゃなくマクロで作って選択範囲小分けのまま放置してるからかな?



811 名前:デフォルトの名無しさん mailto:sage [2021/03/04(木) 11:15:36.75 ID:fKYNPqjU0.net]
>>800
ふーん
範囲指定して消したらどう?
後、最近のEXCELはひょっとして
セルの内容が変わったら
再計算しているかも知れないから
一応自動計算も切ってみたら?

セル値が変わった時のイベント拾って
何かやってるとかいうオチだったら
問題外だけど

812 名前:デフォルトの名無しさん mailto:sage [2021/03/04(木) 11:36:50.11 ID:EtHhkpeQ0.net]
スレが見つからなかったのでこちらで失礼します
C8の値が$100にならない理由を教えて下さい
https://i.imgur.com/XLERVNc.png

813 名前:デフォルトの名無しさん mailto:sage [2021/03/04(木) 11:53:16.96 ID:w9aQykj0M.net]
関数変わっちゃうけど代案を出すなら
VLOOKUP(B8,B1:C5,2,FALSE)
とかどう?

814 名前:デフォルトの名無しさん mailto:sage [2021/03/04(木) 12:01:03.02 ID:1zCrSMV60.net]
なんだこりゃ
LookUpって欠陥あるんかね

815 名前:デフォルトの名無しさん mailto:sage [2021/03/04(木) 12:21:33.50 ID:w9aQykj0M.net]
LOOKUPって近似値を検索する関数だから文字列探そうとすると上手くいかない事が多かった気がする
だから面倒臭くなってVLOOKUP,HLOOKUPを使うように癖をつけた記憶がある

816 名前:デフォルトの名無しさん mailto:sage [2021/03/04(木) 13:49:43.11 ID:1PJYOy7Jr.net]
これ思い出したわ

https://i.imgur.com/x2uWdkO.jpg
https://i.imgur.com/fnrEWzZ.jpg

817 名前:デフォルトの名無しさん mailto:sage [2021/03/04(木) 13:50:26.95 ID:FInty+sk0.net]
新規作成してから試してみたけど$100になったな

818 名前:デフォルトの名無しさん mailto:sage [2021/03/04(木) 14:14:53.10 ID:Kq0/JwOuM.net]
>>810
C8 が "もり " みたいに空白入ってるとかじゃね?

819 名前:デフォルトの名無しさん mailto:sage [2021/03/04(木) 14:47:21.95 ID:skJUg0gJ0.net]
検査範囲の値は昇順にしてください
そうでなければ正しい値はえられません
並んでないときはVLOOKUPやHLOOKUPを使ってください

という旨のことをヘルプに書いてある。

820 名前:デフォルトの名無しさん mailto:sage [2021/03/04(木) 16:50:41.38 ID:b7V1SruDM.net]
LookupにもVLookupやHLookupみたいに検索方法のオプションあればいいのにね
まあMSとしてはExcel最新版にしてXLookup使ってねって言うことなんだろうな



821 名前:デフォルトの名無しさん mailto:sage [2021/03/04(木) 18:46:57.78 ID:EcELbNCH0.net]
初期化で若干重たいのは取り敢えず諦めることにして、外部のCSVをクエリテーブルで読み込んでから
Refleshでシートに書き込んでるのですが、この書き込む前の段階で、クエリテーブル上で不要な列のデータを削除する事って可能でしょうか?
不要なデータが大量に混ざっているので、全部まとめてシートに書き込むとやはり重たいので軽量化したいのですが……

822 名前:デフォルトの名無しさん [2021/03/04(木) 19:49:49.80 ID:V/SEJayw0.net]
いつものあいつだな

823 名前:デフォルトの名無しさん mailto:sage [2021/03/04(木) 20:49:35.42 ID:yRtnuXOv0.net]
lookup系よりindexmatch使うことが多いな

824 名前:デフォルトの名無しさん mailto:sage [2021/03/04(木) 20:55:32.61 ID:INwEijJcM.net]
lindexmatch使いアピールしてはじめて自称excel上級者として一人前

825 名前:デフォルトの名無しさん mailto:sage [2021/03/04(木) 21:28:29.09 ID:Cjl2zDCE0.net]
昔はユーザー定義関数作ったけど、今はXLOOKUPがある。

826 名前:デフォルトの名無しさん mailto:sage [2021/03/04(木) 22:18:19.39 ID:1zCrSMV60.net]
IindexMatchなんぞ使わず、
列をボーンとコピー挿入してVLOOKしてこそ一人前

827 名前:デフォルトの名無しさん mailto:sage [2021/03/05(金) 05:33:04.89 ID:eGeMRqFI0.net]
いつものあいつて何?

828 名前:デフォルトの名無しさん mailto:sage [2021/03/05(金) 09:21:20.59 ID:n//DPju00.net]
とうしつの自己紹介

829 名前:デフォルトの名無しさん mailto:sage [2021/03/05(金) 21:02:22.60 ID:s30llsqJ0.net]
臭う質問者の総称

830 名前:デフォルトの名無しさん mailto:sage [2021/03/06(土) 12:22:29.01 ID:yJvSdslEH.net]
実際に使ってないような質問をして答えさせて悦に入る人



831 名前:デフォルトの名無しさん mailto:sage [2021/03/07(日) 10:26:06.26 ID:FD1rrusm0.net]
webページからデータをとってきてセルに格納するマクロを書いています
msxml2.xmlhttpというのを使うとページの内容をgetすることができるのですが、これはどうやらieを利用しているようです
ieはいつなくなるかわからないので他の方法があれば今のうちから変えておきたいのですが、vbaで使える方法で他にどういうのがあるか教えてください

832 名前:デフォルトの名無しさん mailto:sage [2021/03/07(日) 10:30:32.44 ID:ZX3XyXetM.net]
IEはなくなるのにVBAは大丈夫だと思う理由は?
言語もPythonとかにしてBeautifulSoupやSeleniumでも使った方がよい

833 名前:デフォルトの名無しさん mailto:sage [2021/03/07(日) 10:37:32.50 ID:4ExLqYxe0.net]
パワークエリはどうかな

834 名前:デフォルトの名無しさん mailto:sage [2021/03/07(日) 10:42:14.29 ID:TW4NSoKtM.net]
無くなったときのビジネスインパクトはIEよりもVBAの方が遥かに小さいから、MSがどっちか先に切るとしたらVBAだろう
最悪VBAは切られてもExcelのバージョンを塩漬けにして運用できなくはないしな

835 名前:デフォルトの名無しさん mailto:sage [2021/03/07(日) 11:28:15.07 ID:zpOLYdVD0.net]
>>830
まあそのうちpythonに移行するんでしょうけど、今は慣れない言語を一から勉強してる暇はないので
それで、あなたはvbaでやる他の方法を示せないということでよろしいですか?

>>831
どうかな、じゃなくてどうやるのか教えてください

836 名前:デフォルトの名無しさん mailto:sage [2021/03/07(日) 13:02:06.24 ID:JbGOdXToM.net]
704 名無し~3.EXE sage 2021/03/01(月) 20:11:45.17 ID:hZCKpI4x
デスクトップ版のVBAマクロに替えてWeb版はOfficeスクリプトがプレビュー中(現在は法人向け365のオンラインのみ)
https://docs.microsoft.com/ja-jp/office/dev/scripts/resources/vba-differences

705 名無し~3.EXE sage 2021/03/01(月) 20:16:10.79 ID:hZCKpI4x
Excelの新自動化ソリューション「Office Scripts」プレビュー版が登場
https://ascii.jp/elem/000/004/000/4000725/

Excel操作をJavaScriptで記録 〜Microsoft、“Office Scripts”をパブリックプレビュー
https://forest.watch.impress.co.jp/docs/news/1227931.html

837 名前:デフォルトの名無しさん mailto:sage [2021/03/07(日) 13:04:56.15 ID:JbGOdXToM.net]
788 名無し~3.EXE sage 2021/03/03(水) 18:26:40.20 ID:5NVXQTtc
Excel関数ベースのプログラミング言語「Microsoft Power Fx」登場 オープンソースで公開予定
https://www.itmedia.co.jp/news/articles/2103/03/news080.html

Microsoft、自社製RPAツールを全Windows 10ユーザーに無償提供 マウスクリックやキーボード入力をGUIで自動化
https://www.itmedia.co.jp/news/articles/2103/03/news096.html

838 名前:デフォルトの名無しさん [2021/03/07(日) 13:46:03.75 ID:5FBwssoR0.net]
>>833
なんだただの馬鹿か
煽って聞きだそうとしてもこのスレはいつものあいつで耐性ができた人ばかりだから無理

839 名前:デフォルトの名無しさん mailto:sage [2021/03/07(日) 14:06:40.31 ID:4ExLqYxe0.net]
触れないようにしてたけど辛辣で草

840 名前:デフォルトの名無しさん mailto:sage [2021/03/07(日) 17:25:15.30 ID:CYFzWFvV0.net]
>>836
答えられないならレスしなくていいよ
無能に用はないから



841 名前:デフォルトの名無しさん [2021/03/07(日) 17:51:15.16 ID:5FBwssoR0.net]
>>838
悔し買ったか?馬鹿

842 名前:デフォルトの名無しさん mailto:sage [2021/03/07(日) 18:27:16.06 ID:REgzkSN70.net]
な、age厨だろ?

843 名前:デフォルトの名無しさん mailto:sage [2021/03/07(日) 20:22:49.89 ID:l5mf+U2f0.net]
反論できなくてアゲサゲ言い出す奴は見苦しい

844 名前:デフォルトの名無しさん mailto:sage [2021/03/07(日) 21:30:58.30 ID:iHuYVCVV0.net]
言われて下げてやんのwww

845 名前:デフォルトの名無しさん [2021/03/07(日) 22:58:33.05 ID:5FBwssoR0.net]
馬鹿は自分が相手にしてるのはただ一人だけと思い込む

846 名前:デフォルトの名無しさん mailto:sage [2021/03/08(月) 05:43:53.99 ID:bSh0ioyn0.net]
な、age厨だろ?

847 名前:デフォルトの名無しさん mailto:sage [2021/03/08(月) 07:03:19.05 ID:+AeHqC2j0.net]
自己紹介www

848 名前:デフォルトの名無しさん mailto:sage [2021/03/08(月) 09:05:36.54 ID:+ItxpBbz0.net]
類友

849 名前:デフォルトの名無しさん mailto:sage [2021/03/08(月) 09:36:00.68 ID:gk28PyLU0.net]
もはや論点なにそれ状態

850 名前:デフォルトの名無しさん mailto:sage [2021/03/08(月) 10:52:47.61 ID:TrYviUKj0.net]
保存して閉じる処理をしても、ファイルは閉じてもExcelはとじません

Private Sub Workbook_BeforeClose(Cancel As Boolean)
'処理
Application.DisplayAlerts = False
Application.Quit
ThisWorkbook.Close savechanges:=True
Application.DisplayAlerts = True
End Sub
これでもダメでした
Application.Quit
ThisWorkbook.Close savechanges:=True



851 名前:デフォルトの名無しさん mailto:sage [2021/03/08(月) 11:07:15.73 ID:9xs5g46P0.net]
ActiveWindow.Close

852 名前:848 mailto:sage [2021/03/08(月) 11:38:58.50 ID:TrYviUKj0.net]
>>849

Application.Quit
ThisWorkbook.Close savechanges:=True
ActiveWindow.Close
これもダメでした

853 名前:デフォルトの名無しさん mailto:sage [2021/03/08(月) 11:53:11.92 ID:9xs5g46P0.net]
Application.Quit
Application.DisplayAlerts = False
ThisWorkbook.Close savechanges:=True
Application.DisplayAlerts = True

854 名前:デフォルトの名無しさん mailto:sage [2021/03/08(月) 11:57:13.64 ID:vFSNvomr0.net]
Application.DisplayAlerts = False
If Workbooks.Count = 1 Then
Application.Quit
Else
ThisWorkbook.Close
Application.DisplayAlerts = True
End If

とかどう?

855 名前:デフォルトの名無しさん mailto:sage [2021/03/08(月) 11:59:04.12 ID:ub+dBY/l0.net]
>>848
何でセーブする前にEXCELのアプリケーション閉じようとしてるの?

856 名前:848 mailto:sage [2021/03/08(月) 12:04:00.24 ID:TrYviUKj0.net]
>>851
>>852

ダメでした。
ほかのファイルでは問題なくExcelが終了するのですが
Private Sub Workbook_BeforeClose(Cancel As Boolean)
を使うマクロのときだけ、閉じなくなるような気がします。関係ありますかね?

857 名前:デフォルトの名無しさん mailto:sage [2021/03/08(月) 12:23:48.80 ID:Qtlmv4rK0.net]
>>853

858 名前:デフォルトの名無しさん mailto:sage [2021/03/08(月) 12:30:21.22 ID:ub+dBY/l0.net]
わざわざセーブメッセージ叩き潰して
ブック捕まえたまんまにして
アプリケーション閉じようとしてるんだから
わざと閉じられないようにしているようにしか見えない

859 名前:デフォルトの名無しさん mailto:sage [2021/03/08(月) 12:44:18.76 ID:Qtlmv4rK0.net]
savechangesでも無限ループしてそう

860 名前:デフォルトの名無しさん mailto:sage [2021/03/08(月) 12:56:18.62 ID:vFSNvomr0.net]
>>854
BeforeCloseにApplication.Quit記述してイミディエイトからThisWorkbook.Closeを実行してみたけど問題なく閉じたから何か別の物が干渉してる可能性があるかなぁ



861 名前:デフォルトの名無しさん mailto:sage [2021/03/08(月) 13:04:41.43 ID:9xs5g46P0.net]
めっちゃ古いバージョンとかじゃないだろうな

862 名前:848 mailto:sage [2021/03/08(月) 13:32:58.59 ID:TrYviUKj0.net]
>>855
当初はこれでしたが、ググったら、Application.Quitを上に書くらしいです

ThisWorkbook.Close savechanges:=True
Application.Quit

>>856
Application.Quit
ThisWorkbook.Close savechanges:=True
だけでも同じでした

>>857
他に保存する方法を教えてください

>>858
自分でも試してみましたが、確かにちゃんと閉じますね。他の干渉を疑ってみます。

>>859
2019です

863 名前:デフォルトの名無しさん mailto:sage [2021/03/08(月) 13:49:36.30 ID:9xs5g46P0.net]
Application.EnableEvents = true
を頭に付けてみるとか

864 名前:デフォルトの名無しさん mailto:sage [2021/03/08(月) 18:00:51.59 ID:+0kCYoNG0.net]
そこでやるべきことは ThisWorkbook.Save だけだと思うんだが

865 名前:デフォルトの名無しさん mailto:sage [2021/03/08(月) 18:30:55.70 ID:bSh0ioyn0.net]
コマンドプロンプトでtaskkill /f /im excel.exe

866 名前:デフォルトの名無しさん mailto:sage [2021/03/08(月) 19:53:15.72 ID:Awv++sSE0.net]
Quitは最後では
変なExcelプロセスが残ってないか確認した方がいいのでは

867 名前:デフォルトの名無しさん mailto:sage [2021/03/08(月) 21:03:57.98 ID:53ng3r6C0.net]
VBEでVBAを使って出来たものがマクロであってる?
本屋にVBAの本とマクロの本があるけど同じことと思っておk?

868 名前:デフォルトの名無しさん mailto:sage [2021/03/08(月) 21:12:54.65 ID:ub+dBY/l0.net]
>>865
半分正解

869 名前:デフォルトの名無しさん mailto:sage [2021/03/08(月) 21:17:42.97 ID:ub+dBY/l0.net]
「VBEで作ったものはマクロ」
これは合ってる
「VBAとマクロは同じことを言っている」
マクロにはVBAtで作られたもの以外に
4.0マクロと言うものが有ってだな・・・
まぁ、あまり気にしなくても良いかもしんないけど

870 名前:デフォルトの名無しさん mailto:sage [2021/03/08(月) 21:34:20.02 ID:B96zl28N0.net]
マクロ
スクリプト
関数
これらはプログラムのひとかたまり
厳密に区別しずらいけどそれぞれ
ニュアンスの違いはある



871 名前:デフォルトの名無しさん [2021/03/08(月) 21:58:36.85 ID:U/cFdqiVM.net]
>>865
VBEはエディタ。Excelの場合はVBAとマクロは同じ意味で使われる。ExcelマクロがExcel VBAのコードで表現されるため。

872 名前:デフォルトの名無しさん mailto:sage [2021/03/08(月) 22:10:13.99 ID:Awv++sSE0.net]
>>867
なんかいろいろ違うぞ

873 名前:デフォルトの名無しさん mailto:sage [2021/03/08(月) 22:16:46.29 ID:Dj6nESKZ0.net]
関数は全然違うだろwww

874 名前:デフォルトの名無しさん mailto:sage [2021/03/08(月) 22:42:26.89 ID:53ng3r6C0.net]
>>866
まだ表紙なのに理解半分かw

>>867
4.0マクロネットで見て使ったこと1回だけあるけど関数みたいなやつだった記憶。

>>868
スクリプトも便利そうですよね。
デスクトップかっこ良くするフリーソフトに自由にスクリプト使えますって書いてあって挫折した。。

>>869
出来たもんがマクロでVBAが設計図でVBEが紙と鉛筆か。

みんなありがと、ネットにも解説サイトあるけど違うとこ見ちゃうから本買ってくるわ。ノシ

875 名前:デフォルトの名無しさん mailto:sage [2021/03/08(月) 23:14:12.98 ID:u4CRr3CF0.net]
そういえばvbaをjsで書ける世界まだなんだっけ?
gasみたいな感じで書けないかな

876 名前:デフォルトの名無しさん mailto:sage [2021/03/08(月) 23:18:26.32 ID:hUWITx/G0.net]
WScriptのJScriptでExcel使えるだろ

877 名前:デフォルトの名無しさん mailto:sage [2021/03/09(火) 00:19:47.43 ID:fLnH8jKyM.net]
>>873
>>834

878 名前:デフォルトの名無しさん mailto:sage [2021/03/09(火) 02:53:50.15 ID:uNAjD4zcH.net]
微妙に違う気がするなあ
VBAはプログラミング言語の名前(の略称)。単語と文法が書いてあるだけの辞書みたいなもん
その言語で書かれた物がマクロで、むしろ設計図はこっちが近い
VBEはマクロの作成を手助けするツール、紙と鉛筆って考え方はだいたい合ってる
で、マクロの中でも結果を一組だけ呼び出し元に返すように作られてるのが関数

879 名前:デフォルトの名無しさん mailto:sage [2021/03/09(火) 05:15:21.29 ID:suvlK62N0.net]
機能とワークシート関数とか全くわからん
操作なんてVBAで良いじゃん
周りでもそういった人いるしさ

880 名前:デフォルトの名無しさん mailto:sage [2021/03/09(火) 08:22:35.06 ID:zXQo4RJq0.net]
本来、Excelの操作の自動化を目的にしたVBAマクロなのに元の機能そのものが全く分からんとか本末転倒にも程がある



881 名前:デフォルトの名無しさん [2021/03/09(火) 10:45:46.13 ID:pnwu5thka.net]
作成依頼です

一定範囲内において、選択されたセルすべてに、書式設定で取り消し線を付けたいです

たとえば、D5からD20の範囲内で、そこ以外の範囲が選択されていた場合はエラーを返す
範囲内なら、選択されたセル(単一、複数、飛び石あり)すべてに、一括で取り消し線を追加
というような感じです

飛び石状態で複数が選択された場合に、上手く処理できなくて相談させていただきました
よろしくお願い致します

882 名前:デフォルトの名無しさん [2021/03/09(火) 11:04:35.36 ID:oV9GYLDS0.net]
>>879
そんな仕様のものを作ってはいけない

883 名前:デフォルトの名無しさん mailto:sage [2021/03/09(火) 11:21:48.31 ID:Nc9tdWjH0.net]
>>879
選択範囲をまとめて見るんじゃなくて、選択されたセル一つ一つについて既定の範囲内にあるか条件判断をし、エラーかそうでないか
エラーでなく全てのセルが範囲内なら一つ一つのセルに取り消し線を追加
とすれば普通にできるでしょ
横着しようとしてるからいけないんじゃないの

884 名前:デフォルトの名無しさん mailto:sage [2021/03/09(火) 11:25:30.81 ID:uNAjD4zcH.net]
VBEは赤ペン先生?全部じゃないけど間違いをすぐ教えてくれる

885 名前:デフォルトの名無しさん mailto:sage [2021/03/09(火) 11:58:31.47 ID:zYh1VL3E0.net]
>>879
お金ください

886 名前:デフォルトの名無しさん mailto:sage [2021/03/09(火) 12:03:56.11 ID:uNAjD4zcH.net]
>>879
For Eachでセルを1個ずつ処理するんだよ

For Each、セルアドレスチェック、1つでもD5-D20じゃなかったらエラー
エラーがなかったらもう一度For Each、各セルに取り消し線

みたいな流れ

887 名前:デフォルトの名無しさん mailto:sage [2021/03/09(火) 12:09:52.12 ID:4S2gbixUa.net]
ピボットグラフのスライサー内の選択を変えた時にマクロが動くようにしたいです
イメージ的にはワークシートイベントです
例︰スライサーの日付を変更時にグラフの色を塗る

選択変更の検知方法を教えてください
よろしくお願いします

888 名前:デフォルトの名無しさん [2021/03/09(火) 12:25:42.94 ID:t7O7P6i9M.net]
外枠なら面倒だけど取り消し線なら簡単だ

889 名前:デフォルトの名無しさん mailto:sage [2021/03/09(火) 12:38:26.95 ID:uNAjD4zcH.net]
外枠でも大差ないと思う
Selectionの上下左右に罫線を引くだけ

890 名前:デフォルトの名無しさん [2021/03/09(火) 12:43:13.10 ID:pnwu5thka.net]
>>881
>>884
なるほど、これなら自分でできそうです
ありがとうございました



891 名前:デフォルトの名無しさん mailto:sage [2021/03/09(火) 13:03:57.82 ID:C5e26MY+0.net]
いえいえ、自分でもっと勉強してくださいね

892 名前:デフォルトの名無しさん mailto:sage [2021/03/09(火) 16:16:21.91 ID:1va3W7Si0.net]
>>879
If Intersect(Selection, Range("D5:D20")).Count <> Selection.Count Then
MsgBox "エラー"
Else
Selection.Font.Strikethrough = True
End If

893 名前:デフォルトの名無しさん mailto:sage [2021/03/10(水) 00:11:15.88 ID:seJ5KfaI0.net]
だってさ、先輩がExcelなんか全部マクロで動かせば良いって言われたからさ。。。
ワークシートの関数とかそんなもん覚えなくて良いと言われたからさ。
だからVBAしか知らない。
今凄く関数とか機能を覚えるために苦労してる。

894 名前:デフォルトの名無しさん mailto:sage [2021/03/10(水) 02:20:07.32 ID:Mh5oeh7J0.net]
>>891
無理してやる必要ないのに、何のために覚えるの?

895 名前:デフォルトの名無しさん mailto:sage [2021/03/10(水) 07:58:05.94 ID:seJ5KfaI0.net]
>>892
マクロだけでは遠回りだと気づいて

896 名前:デフォルトの名無しさん mailto:sage [2021/03/10(水) 08:18:24.93 ID:afuwFvM40.net]
vlookupはなんであんな変なインターフェースなんですか

897 名前:デフォルトの名無しさん [2021/03/10(水) 09:29:52.26 ID:AjUIRLk9M.net]
ポーカーフェイスですよ

898 名前:デフォルトの名無しさん [2021/03/10(水) 10:14:53.26 ID:B52MA1yl0.net]
>>894
古いから

899 名前:デフォルトの名無しさん [2021/03/10(水) 14:59:19.94 ID:hxdj8Ixba.net]
screenupdapingを非表示にした状態でcalculationを自動にしたら、ちゃんと計算やってくれますか?

900 名前:デフォルトの名無しさん mailto:sage [2021/03/10(水) 15:30:04.25 ID:PHH+vFRc0.net]
>>897
自分でやってみりゃいいじゃん



901 名前:デフォルトの名無しさん [2021/03/10(水) 15:39:38.02 ID:hxdj8Ixba.net]
>>898
updatingが表示になったときに計算されるのか、非表示中に計算されてるのかがわからないのです。

902 名前:デフォルトの名無しさん mailto:sage [2021/03/10(水) 15:43:34.11 ID:TvaGnuXK0.net]
ExcelからVBAが完全になくなるより先にMSが先になくなりそうじゃない?

903 名前:デフォルトの名無しさん mailto:sage [2021/03/10(水) 15:57:24.48 ID:kPBSipVT0.net]
MSがなくなるより先にお前がなくなるんじゃない

904 名前:デフォルトの名無しさん mailto:sage [2021/03/10(水) 17:04:34.10 ID:ij0IDF+ed.net]
その前にIT途上企業のウチの会社がなくなるな

905 名前:デフォルトの名無しさん mailto:sage [2021/03/10(水) 17:25:36.32 ID:PHH+vFRc0.net]
>>899
対象セルのvalue値を処理中に
debug.printで書き出すなり
どこかのセルに突っ込むなり
トレースして確認するなりすればいいじゃん
まず聞く前にググる癖をつけないと
いつまで経っても誰かに聞かないと
何も出来なくなるよ

906 名前:デフォルトの名無しさん [2021/03/10(水) 17:37:30.93 ID:hxdj8Ixba.net]
>>903
わかりました。てか式の値見ればすぐわかりますね。やってみます

907 名前:デフォルトの名無しさん mailto:sage [2021/03/10(水) 18:13:57.59 ID:osSCK/tE0.net]
今日水曜日なのにweekdayName(weekday(Date))で木曜日と出るのは仕様?

Dateは2021/03/10
weekday(Date)は4
と出ることは確認済み
weekdayとweekdayNameで週始めを日曜とするか月曜とするかで差が出てるんだろうからweekdaynameをvbSundayにすることで解決はするけど、何かが原因でここに違いが出てるなら修正したいので仕様かどうか知りたい

908 名前:デフォルトの名無しさん mailto:sage [2021/03/10(水) 19:31:18.15 ID:WhcyA+8r0.net]
仕様ではない

909 名前:デフォルトの名無しさん mailto:sage [2021/03/10(水) 19:41:43.99 ID:iMortp6N0.net]
Weekdayの規定値がvbSundayで、WeekdayNameの規定値がvbUseSystemDayOfWeek。
どっちかに合わせた方がいいと思う。

910 名前:デフォルトの名無しさん mailto:sage [2021/03/10(水) 20:15:11.47 ID:FQxPGFWfa.net]
やっぱり>>885の方法はないですかね
諦めてマクロボタンで更新します
ありがとうございました



911 名前:デフォルトの名無しさん mailto:sage [2021/03/11(木) 16:08:09.65 ID:2F7MZ2cN0.net]
>>907
なるほど、自分のwindowsカレンダーの開始日が月曜になってるからなのか
なんで既定値が違うんだろうという疑問は残りつつも納得、ありがとうございました

912 名前:デフォルトの名無しさん mailto:sage [2021/03/12(金) 14:18:56.93 ID:cUuyzc0G0.net]
VBA学ぶのにお勧めの本ありますか?

913 名前:デフォルトの名無しさん [2021/03/12(金) 14:22:39.95 ID:b9Kr93A50.net]
>>910
MOSの本

914 名前:デフォルトの名無しさん [2021/03/12(金) 14:25:27.81 ID:b9Kr93A50.net]
正確にはVBAエキスパートか。

見過されがちだけど、試験対策本は非常によくまとまっている。

915 名前:デフォルトの名無しさん [2021/03/12(金) 17:44:33.68 ID:UcsTGFzQM.net]
買う前に周辺の図書館を回れば、vba本が見つかるかもしれない

916 名前:デフォルトの名無しさん [2021/03/12(金) 19:23:46.81 ID:7Crflr6rM.net]
金額の話なのか?

917 名前:デフォルトの名無しさん mailto:sage [2021/03/12(金) 19:31:10.39 ID:f8Q6HjqoM.net]
650頁を超える「Excel VBA逆引き辞典パーフェクト」を最初から通して読む

918 名前:デフォルトの名無しさん mailto:sage [2021/03/12(金) 23:07:31.55 ID:NBdc6r9a0.net]
VBの、何かあの電話帳より分厚いの有るじゃん
叩かれると85ポイントくらいダメージを受けそうな感じのアレ
マジレスすると、あれで勉強したわ

919 名前:デフォルトの名無しさん mailto:sage [2021/03/12(金) 23:38:50.44 ID:sGQx1lBf0.net]
>>894
XLookupを使いなさい

920 名前:デフォルトの名無しさん mailto:sage [2021/03/13(土) 02:37:38.41 ID:5xXr3I9d0.net]
まじレスすると他人のおすすめの本は買っただけで満足して読まない可能性が高い



921 名前:デフォルトの名無しさん mailto:sage [2021/03/13(土) 07:57:23.36 ID:slDJWJ280.net]
>>910
出来るだけ薄い奴がいいよ
少なくとも一週間で読み切れそうな奴
細かい部分は結局ググる事になるから手っ取り早く基礎だけ学べるのがいい

プログラミングの勉強は書き方を学ぶというより、
「ググる方法、ググって出てきた内容を理解できる最低限の知識」を身に着ける方に重きを置いた方がいい

922 名前:デフォルトの名無しさん mailto:sage [2021/03/13(土) 08:14:07.47 ID:csBuBYNL0.net]
>>910
現在の知識レベルによって薦める本は変わってくるけどなーんも知らないと言うのならVBAの絵本でいいんじゃなかろか

>>919の人も言ってるけど基本、ネットで調べることになるんでどちらかというと
自分が知りたいことを調べられる単語をすぐに思い浮かべる力と
それを理解する力の方が自分的には重要な気がする
後、理解出来なければ取り敢えず書いてみてこねくり回すことも大事

本当に基本的なことさえ分かっていれば、
その内クラスやAPI、コールバックとかにぶつかることがあってもネットで調べることが出来れば
自分が然るべき理解力をつけた際に理解出来るようになる。

923 名前:デフォルトの名無しさん [2021/03/13(土) 08:17:01.13 ID:tBGlpruK0.net]
メルカリなどでたくさん買って、好きなのを使えばいいよ。

924 名前:デフォルトの名無しさん mailto:sage [2021/03/13(土) 11:51:20.74 ID:9LAtgmD40.net]
>>910
VBAの神様

925 名前:デフォルトの名無しさん [2021/03/13(土) 14:55:26.89 ID:4/YYKqK7F.net]
Excel VBAは自己流が多いと思うけど、体系的に学習するならマイクロソフトのVBAエキスパート本だろうな。

926 名前:デフォルトの名無しさん mailto:sage [2021/03/13(土) 21:38:13.19 ID:99ipLDsT0.net]
小手先のテクニックより
複雑怪奇なExcelの挙動の中身がどうなってんのか
詳細に説明してほしいわ

謎挙動がおおすぎる

927 名前:デフォルトの名無しさん mailto:sage [2021/03/13(土) 21:57:08.91 ID:7fDCnZwF0.net]
具体的には?

928 名前:デフォルトの名無しさん [2021/03/13(土) 22:05:26.89 ID:tBGlpruK0.net]
>>924
あまり使われていないVBAの機能を使うとすぐにバグにはまる。

929 名前:デフォルトの名無しさん [2021/03/13(土) 22:07:49.91 ID:tBGlpruK0.net]
ActiveXのボタンが消えるバグなどは放置状態

930 名前:デフォルトの名無しさん mailto:sage [2021/03/14(日) 01:08:53.96 ID:EQ7/9AB00.net]
vbの構文がダサすぎるのが嫌
綺麗に書いても汚らしく見える Dim asとかキモいんだよ



931 名前:デフォルトの名無しさん mailto:sage [2021/03/14(日) 02:39:44.98 ID:QAEhurjz0.net]
VBAのコードのフォントを HGP行書体 (日本語) とかにしてみたら?

932 名前:デフォルトの名無しさん mailto:sage [2021/03/14(日) 03:51:24.74 ID:+mKOZ3nE0.net]
ACCESSのレポートではかけたのですが
VBAで規定の先よりも細い線を書くことはできませんか?

933 名前:デフォルトの名無しさん mailto:sage [2021/03/15(月) 06:39:33.91 ID:6QvkQitw0.net]
コントロールのボタンが押す度徐々に小さくなったり消えたり動き回ったり
配列返す関数をUboundに渡すとメモリリークしたり、
フォームをモーダル表示中にシートをアクティブにすると何故かシートを操作できたり、
インターフェースを実装するクラス自体をインターフェースに出来てしまう上に、それをするとバグったり、
いくらでも上げられるだろ

特にフィルタ関連は変なのが多い
specialcells(xlcelltypevisible)とかcopyメソッドとか

934 名前:デフォルトの名無しさん [2021/03/16(火) 14:07:15.77 ID:yEkj4Jws0.net]
作成依頼なんですがお願いできますでしょうか

A列に数字(No.)
B列に文字列(名前)の3000行ほどの表があります。
A列の数字は重複している箇所があり、
A列が他の行と重複している場合B列の文字を全て繋げてC列に書き出したいのですが可能でしょうか。

サンプル
A列  B列 C列
11111 A子 A子
11112 B子 B子
11113 C子 C子・D子・E子
11113 D子 C子・D子・E子
11113 E子 C子・D子・E子
11114 F子 F子
11114 F子 F子
11115 E子 E子

ただし、サンプルのように
A列が重複してもB列の文字列が同じだった場合は『F子・F子』とならずに『F子』のままで、
重複しないA子、B子もそのままにしたいのです。
Aが列の数字は最大で20ほど重複している場合があります。

ずっと手作業でやってて挫けそうなんでお願いします!!

935 名前:デフォルトの名無しさん mailto:sage [2021/03/16(火) 14:24:36.41 ID:gGJzxP62H.net]
>>932
Sub Macro1()
  rr = Cells(Rows.Count, 1).End(xlUp).Row
  For i = 1 To rr
    n = Cells(i, 1)

936 名前:
    s = Cells(i, 2)
    t = s & "・"
    For j = 1 To i - 1
      If Cells(j, 1) = n Then
        w = Cells(j, 2)
        If InStr(t, w) = 0 Then
          t = t & w & "・"
        End If
      End If
    Next
    t = t & s & "・"
    For j = i + 1 To rr
      If Cells(j, 1) = n Then
        w = Cells(j, 2)
        If InStr(t, w) = 0 Then
          t = t & w & "・"
        End If
      End If
    Next
    t = Left(t, Len(t) - 1)
    t = Right(t, Len(t) - 1 - Len(s))
    Cells(i, 3) = t
  Next
End Sub
[]
[ここ壊れてます]

937 名前:デフォルトの名無しさん mailto:sage [2021/03/16(火) 15:29:08.70 ID:yEkj4Jws0.net]
>>933
どひゃ〜!!!!
しゅ、しゅごいぃいいい!
ありがとうございます!ありがとうございます!本当にありがとう!

938 名前:デフォルトの名無しさん mailto:sage [2021/03/16(火) 15:59:46.67 ID:cZC9o7Y5M.net]
それ、例えば百合さんと百合子さんがいた時にバグらない?
こういうのは辞書に登録してitemsプロパティをjoin関数に渡すのが鉄板だと思う

最近ならvba使わずにfilter関数とunique関数でも同じことできるから、もしかしたらこっちの方が楽かも

939 名前:デフォルトの名無しさん mailto:sage [2021/03/16(火) 15:59:47.11 ID:btbyDUmHr.net]
>>933
きったねえソースだなおい

940 名前:デフォルトの名無しさん mailto:sage [2021/03/16(火) 16:01:05.39 ID:YCs8uHit0.net]
お、きれいなソース期待かw



941 名前:デフォルトの名無しさん mailto:sage [2021/03/16(火) 16:15:55.00 ID:gGJzxP62H.net]
百合・百合子バグ修正
Sub Macro1()
  rr = Cells(Rows.Count, 1).End(xlUp).Row
  For r = 1 To rr
    n = Cells(r, 1)
    s = Cells(r, 2)
    t = "・" & s & "・"
    For i = 1 To r - 1
      If Cells(i, 1) = n Then
        w = Cells(i, 2)
        If InStr(t, "・" & w & "・") = 0 Then
          t = t & w & "・"
        End If
      End If
    Next
    t = t & s & "・"
    For i = r + 1 To rr
      If Cells(i, 1) = n Then
        w = Cells(i, 2)
        If InStr(t, "・" & w & "・") = 0 Then
          t = t & w & "・"
        End If
      End If
    Next
    t = Left(t, Len(t) - 1)
    t = Right(t, Len(t) - Len(s) - 2)
    Cells(r, 3) = t
  Next
End Sub

942 名前:デフォルトの名無しさん mailto:sage [2021/03/16(火) 16:53:04.48 ID:cZC9o7Y5M.net]
百合さんと百合・D・ルフィさんがいた時にバグる

943 名前:デフォルトの名無しさん mailto:sage [2021/03/16(火) 17:22:11.94 ID:gGJzxP62H.net]
百合・D・ルフィバグ修正
Sub Macro2()
  Dim d As Object
  Set d = CreateObject("Scripting.Dictionary")
  rr = Cells(Rows.Count, 1).End(xlUp).Row
  For r = 1 To rr
    For i = 1 To rr
      If Cells(i, 1) = Cells(r, 1) Then
        s = Cells(i, 2)
        If Not d.exists(s) Then d.Add (s), 0
      End If
    Next
    Cells(r, 3) = Join(d.keys, "・")
    d.RemoveAll
  Next
End Sub

944 名前:デフォルトの名無しさん mailto:sage [2021/03/16(火) 17:31:00.58 ID:tUVUKdZi0.net]
>>932
Ruby で、CSV ファイルでやってみた

require 'csv'

tmp_hash = { }

result_ary = CSV.read( "input.csv" ) # 2次元配列

result_ary.each do | row | # 1行ずつ処理する
if tmp_hash.has_key? row[ 0 ] # 既に、その数字が存在すれば
# 文字列が存在しない時だけ、その文字列を追加する
tmp_hash[ row[ 0 ] ][ row[ 1 ] ] = true unless
tmp_hash[ row[ 0 ] ].has_key? row[ 1 ]
else
tmp_hash[ row[ 0 ] ] = { row[ 1 ] => true }
end
end

# p tmp_hash
# {"11111"=>{"A子"=>true}, "11112"=>{"B子"=>true},
# "11113"=>{"C子"=>true, "D子"=>true, "E子"=>true},
# "11114"=>{"F子"=>true}, "11115"=>{"E子"=>true}}

result_ary.each do | row | # 1行ずつ処理する
# その行の3列目に、キーを結合した文字列を追加する
row.push tmp_hash[ row[ 0 ] ].keys.join( "・" )
end

csv_str = result_ary.map( &:to_csv ).join # 2次元配列を、CSV 文字列に変換する
print csv_str

945 名前:デフォルトの名無しさん mailto:sage [2021/03/16(火) 17:41:01.13 ID:QPeaG/4LM.net]
何故突然にRuby?

946 名前:932 mailto:sage [2021/03/16(火) 18:32:29.43 ID:yEkj4Jws0.net]
>>940
度々ありがとうございます!
最初ヤツでも今の所大丈夫そうでしたが、今後はこちらを使わせていただきます!

他の方もありがとうございます!

947 名前:デフォルトの名無しさん mailto:sage [2021/03/16(火) 19:02:04.81 ID:EUyNpk5n0.net]
>>942
rubyスレだと相手にもされないからわざわざ違うスレに来てるかわいそうな人だよ

948 名前:デフォルトの名無しさん [2021/03/16(火) 21:06:28.11 ID:8Gn4pDRu0.net]
名前の例が○子とは、そうとうなジイさんだなw

949 名前:デフォルトの名無しさん mailto:sage [2021/03/16(火) 21:12:32.28 ID:gGJzxP62H.net]
>>945
現代だとどう書くの?
ランキングによると結が人気あるらしいから結A、結B、結Cか

950 名前:デフォルトの名無しさん mailto:sage [2021/03/16(火) 21:15:14.58 ID:lullOsMB0.net]
そら「百合(ろーず)」よ



951 名前:デフォルトの名無しさん [2021/03/16(火) 21:28:58.74 ID:8Gn4pDRu0.net]
>>946
なんで女なのか?

952 名前:デフォルトの名無しさん mailto:sage [2021/03/16(火) 21:42:16.30 ID:gGJzxP62H.net]
そんなこと言ったら、なぜ日本人なのか、なぜ人類なのか

953 名前:デフォルトの名無しさん [2021/03/16(火) 21:51:49.14 ID:8Gn4pDRu0.net]
太郎、次郎、三郎、四郎、五郎でいいだろ。

954 名前:デフォルトの名無しさん mailto:sage [2021/03/16(火) 21:55:45.14 ID:YCs8uHit0.net]
なんで男なのか?

955 名前:デフォルトの名無しさん mailto:sage [2021/03/16(火) 22:05:23.00 ID:gGJzxP62H.net]
3000行もあるのに、それじゃ考えるのが大変だ

956 名前:デフォルトの名無しさん mailto:sage [2021/03/16(火) 23:39:47.76 ID:FDp5iKWO0.net]
手作業でAからFカップを調べる作業にVBA使うとか
お前ら男として終わってるわマジで

957 名前:デフォルトの名無しさん mailto:sage [2021/03/17(水) 00:14:55.79 ID:8Ujh9QFC0.net]
ろーずって薔薇じゃないの?

958 名前:デフォルトの名無しさん mailto:sage [2021/03/17(水) 00:20:54.29 ID:lKwA7qQn0.net]
そうだよ

959 名前:デフォルトの名無しさん mailto:sage [2021/03/17(水) 00:54:57.81 ID:KXbC8pO1H.net]
わざと間違えるっていう2chから続く伝統芸
https://i.imgur.com/h4Fip2L.jpg

960 名前:デフォルトの名無しさん mailto:sage [2021/03/17(水) 02:44:52.10 ID:LQZUutD10.net]
>>933
いきなりCellsで始まるのはいただけないなw
できればブックから始める習慣を付けて欲しい。



961 名前:デフォルトの名無しさん mailto:sage [2021/03/17(水) 03:45:50.60 ID:KXbC8pO1H.net]
>>957 なおした
Option Explicit
Sub VBA69_932()
  Dim A_number As Long, B_name As String, C_list As Object
  Dim last_row As Long, row_loop As Long, search_loop As Long
  Set C_list = CreateObject("Scripting.Dictionary")
  With ThisWorkbook.ActiveSheet
    last_row = .Range("A" & Rows.Count).End(xlUp).Row
    For row_loop = 1 To last_row
      C_list.RemoveAll
      A_number = .Range("A" & row_loop)
      For search_loop = 1 To last_row
        If .Range("A" & search_loop) = A_number Then
          B_name = .Range("B" & search_loop)
          If Not C_list.exists(B_name) Then
            C_list.Add (B_name), 0
          End If
        End If
      Next
      .Range("C" & row_loop) = Join(C_list.keys, "・")
    Next
  End With
End Sub

962 名前:デフォルトの名無しさん mailto:sage [2021/03/17(水) 10:07:11.87 ID:wJCP0FMq0.net]
>>933
謎の変数名を多用するのやめてくれ。見る気が一瞬で失せる。
ネスト深くするのも罪悪感感じてくれ

963 名前:デフォルトの名無しさん mailto:sage [2021/03/17(水) 10:20:01.36 ID:QeKL1gNm0.net]
配列でやれ

964 名前:デフォルトの名無しさん mailto:sage [2021/03/17(水) 10:38:31.95 ID:CnU6DmD/0.net]
はい

965 名前:デフォルトの名無しさん mailto:sage [2021/03/17(水) 10:48:27.37 ID:AkcuhhXSr.net]
れつ

966 名前:デフォルトの名無しさん mailto:sage [2021/03/17(水) 10:49:53.05 ID:rwSgtXuJ0.net]
ゴー

967 名前:デフォルトの名無しさん mailto:sage [2021/03/17(水) 10:52:25.95 ID:KXbC8pO1H.net]
>>960 なおした
Option Explicit
Sub VBA69_932_a()
  Dim This As Worksheet
  Dim table() As Variant
  Dim A_number As Long, B_name As String, C_list As Object
  Dim last_row As Long, row_loop As Long, search_loop As Long
  Set C_list = CreateObject("Scripting.Dictionary")
  Set This = ThisWorkbook.ActiveSheet
  last_row = This.Range("A" & Rows.Count).End(xlUp).Row
  ReDim table(last_row - 1, 2)
  table = This.Range("A1:C" & last_row)
  For row_loop = 1 To last_row
    A_number = table(row_loop, 1)
    C_list.RemoveAll
    For search_loop = 1 To last_row
      If table(search_loop, 1) = A_number Then
        B_name = table(search_loop, 2)
        If Not C_list.exists(B_name) Then
          C_list.Add (B_name), 0
        End If
      End If
    Next
    table(row_loop, 3) = Join(C_list.keys, "・")
  Next
  This.Range("A1:C" & last_row) = table
End Sub

968 名前:デフォルトの名無しさん mailto:sage [2021/03/17(水) 10:59:16.82 ID:AkcuhhXSr.net]
変数にABCなんてのを使ってる時点でセンスゼロ
後で見て全くわからないバグの温床にしかならない

969 名前:デフォルトの名無しさん mailto:sage [2021/03/17(水) 11:12:33.58 ID:QeKL1gNm0.net]
LBound UBound使えよ

970 名前:デフォルトの名無しさん mailto:sage [2021/03/17(水) 11:56:37.23 ID:KXbC8pO1H.net]
>>965
お手本見せて
>>966
データ数は変数に入れたから改めて調べる必要ないという判断



971 名前:デフォルトの名無しさん [2021/03/17(水) 12:13:35.08 ID:YH/YYkmR0.net]
クソコード

972 名前:デフォルトの名無しさん mailto:sage [2021/03/17(水) 12:27:17.82 ID:rAxKrtcHF.net]
うんコード

973 名前:デフォルトの名無しさん mailto:sage [2021/03/17(水) 13:20:25.46 ID:4HdAS7ns0.net]
変数名に対する識者の見解
https://mevius.5ch.net/test/read.cgi/bsoft/1608362765/253n

974 名前:デフォルトの名無しさん mailto:sage [2021/03/17(水) 14:37:09.94 ID:rwSgtXuJ0.net]
口だけで何もしない(できない)奴はスルーでいいよ

975 名前:デフォルトの名無しさん mailto:sage [2021/03/17(水) 15:25:09.30 ID:vF0LuwhE0.net]
>>964
うーん
頭ごなしに糞というつもりはないけど
そうだね、もし改善点を挙げるとすれば・・・
まぁ聞き流して良いけどね。

・変数名は一貫性を持たせて、一見して何を意味しているのか分かるようにすること。
例えば頭の1文字が大文字だったり小文字しているのをキャメル形式に統一するとか。
・ActiveSheetは極力使わない。
キチンとした意味を持っているならそれでいいけど、フォームやツールバーから呼ばれることやそのように改修される可能性も考慮してどのシートを使うか明示的に指定する方が良い。
もちろんその際はシート名が変更されてしまうことを考慮して
シート名ではなくシートオブジェクト名を使用する。
・単一責任原則を踏襲する。
一つの関数またはメソッドに、一つの役割のみ持たせて一つの関数またはメソッドが増長になることを防ぐ。
とは言ってもこれは何を一つの役割とするかを決めるセンスが必要で、
これを上手く作れれば「糞」からひとつ脱却出来る。
後は趣味の問題だけど
・Withを使わないことに慣れる。
VBA → VB.Net → C#に移行したとき、Withが無いから慣れておくとちょっと楽。
・CreateObjectは使い所を考える。
CreateObjectはバージョンを考慮せずに済んだりする反面、
メソッドやプロパティのインテリセンスが効かなくなるため、タイプミスをし易くなるという欠点がある。
参照で繋ぐか、CreateObjectで作成するかは
一考した方が良い。

尚、本来Variant型は何でも入ってしまう危険な型なので
使わない方がいいと言いたいところだけど
EXCELのRangeオブジェクトとあまりに相性が良いから使うなとは言えない。

976 名前:デフォルトの名無しさん mailto:sage [2021/03/17(水) 16:55:51.25 ID:ttYMdvTCd.net]
ワロタ

977 名前:デフォルトの名無しさん mailto:sage [2021/03/17(水) 19:15:40.71 ID:2RS2aA5zM.net]
メガネをクイってしながら凄い早口で言ってそう

978 名前:デフォルトの名無しさん mailto:sage [2021/03/17(水) 19:24:46.18 ID:lGPcjQzL0.net]
>>967
940が一番何をしてるのか分かりやすい
これにシート銘柄をしっかり記述すればよいのでは?

979 名前:デフォルトの名無しさん mailto:sage [2021/03/17(水) 19:25:19.68 ID:lGPcjQzL0.net]
銘柄w
シート名ね

980 名前:デフォルトの名無しさん mailto:sage [2021/03/17(水) 19:38:30.30 ID:vF0LuwhE0.net]
>>964
ついでにもう一つ言っておくと、
ディクショナリやコレクションの要素数は1バイトで扱える数、つまり1から数えて256まで。
着眼点は良かったけど、3000行を考慮すると
オーバーフローで落ちる可能性があるよ。



981 名前:デフォルトの名無しさん mailto:sage [2021/03/17(水) 19:56:32.92 ID:lKwA7qQn0.net]
>>956
ちがう
金星(まぁず)ちゃんというDQNネームがあった

982 名前:デフォルトの名無しさん mailto:sage [2021/03/17(水) 19:57:39.75 ID:lGPcjQzL0.net]
ディクショナリは重複確認用で3000データをまるまる格納する訳じゃないだろ

983 名前:デフォルトの名無しさん mailto:sage [2021/03/17(水) 20:01:06.73 ID:cHLiD5SO0.net]
>>977
>ディクショナリやコレクションの要素数は1バイトで扱える数、つまり1から数えて256まで。
初耳

984 名前:デフォルトの名無しさん mailto:sage [2021/03/17(水) 20:20:25.27 ID:lKwA7qQn0.net]
>>977
嘘を言うな

985 名前:デフォルトの名無しさん [2021/03/17(水) 21:15:41.95 ID:X8ZT7dpP0.net]
256ページの辞書なんて存在するの?

986 名前:デフォルトの名無しさん mailto:sage [2021/03/17(水) 21:56:14.59 ID:2ghuU9if0.net]
ウィンドウ上の制限

987 名前:デフォルトの名無しさん [2021/03/17(水) 23:33:51.91 ID:YH/YYkmR0.net]
経験からくる誤った思い込みだろうね。

1バイト単位の区切りというのは、8ビットパソコン時代からExcelが存在していれば、可能性としてあるが、16ビットパソコンから作っているのに1バイトという制限はありえない。

988 名前:デフォルトの名無しさん mailto:sage [2021/03/17(水) 23:42:58.65 ID:n+mEYgox0.net]
ディクショナリとかコレクションとかが、具体的に何を指してるかにもよるんだが
まあ255個とかいう制限のディクショナリやコレクションは思いつかないが

EXCELに限れば、上限255とか256とかいう制限のものは今ですらちょこちょこあるんだぜ
https://support.microsoft.com/ja-jp/office/excel-%E3%81%AE%E4%BB%95%E6%A7%98%E3%81%A8%E5%88%B6%E9%99%90-1672b34d-7043-467e-8e27-269d656771c3#ID0EBABAAA=%E6%96%B0%E3%81%97%E3%81%84%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3

989 名前:デフォルトの名無しさん [2021/03/18(木) 00:01:49.93 ID:7fQvPjcg0.net]
>>985
論点ずらしだな。単純に初期のExcelの時代だとメモリ節約で1バイトにしただけで、足りないと判断されたものは、のちに2バイト、4バイト単位に変更されている。

990 名前:デフォルトの名無しさん mailto:sage [2021/03/18(木) 00:28:15.06 ID:POZoiR5o0.net]
改善点とか言って挙げてる内容は偏ってて微妙だし知識も無いのに態度だけ上からだし昔の人はすごいなぁ



991 名前:デフォルトの名無しさん mailto:sage [2021/03/18(木) 02:36:30.62 ID:Z7yNcrmt0.net]
>>985
例えば列の幅が255文字なのは別に1バイトで管理してるわけじゃなくて上限を設定してるだけだろ
そう言うのはExcelに限った話じゃないよ

992 名前:941 mailto:sage [2021/03/18(木) 13:11:04.06 ID:VjRMlHUp0.net]
>>941
11111,A子
11112,B子

Ruby で、こういうCSV ファイルを処理した場合、
辞書は、こうなる。
値のtrue に意味はない

{"11111"=>{"A子"=>true}, "11112"=>{"B子"=>true},
"11113"=>{"C子"=>true, "D子"=>true, "E子"=>true},
"11114"=>{"F子"=>true}, "11115"=>{"E子"=>true}}

F子は、重複しない

993 名前:941 mailto:sage [2021/03/18(木) 13:17:05.45 ID:VjRMlHUp0.net]
ただし、このファイルを、1パスでは処理できない

11113,C子
11113,D子
11113,E子

"11113"=>{"C子"=>true, "D子"=>true, "E子"=>true},

C子 を読み込んだ時点で、その行よりも後ろにある、
D子・E子 の情報を取得できないから

だから、>>941
では、データ配列を2回読んでいる

994 名前:デフォルトの名無しさん mailto:sage [2021/03/18(木) 13:36:31.16 ID:pzBF2kYz0.net]
>>964
64bit版の時はlonglongで宣言するようにしないとエラーになる可能性があるよ

995 名前:デフォルトの名無しさん mailto:sage [2021/03/18(木) 14:11:19.12 ID:Z7yNcrmt0.net]
>>991
3,000行ぐらいなのに?

996 名前:デフォルトの名無しさん mailto:sage [2021/03/18(木) 14:55:42.20 ID:pzBF2kYz0.net]
そんな考えならプログラミングやめたほうが良いんじゃない

997 名前:デフォルトの名無しさん mailto:sage [2021/03/18(木) 15:38:13.36 ID:Z7yNcrmt0.net]
何でもかんでもLongLong使うのが正解だとでも思ってるの?

998 名前:デフォルトの名無しさん [2021/03/18(木) 15:58:28.07 ID:7fQvPjcg0.net]
>>993 はデタラメを言っているな。妄想なのかな。

999 名前:デフォルトの名無しさん [2021/03/18(木) 16:01:58.30 ID:7fQvPjcg0.net]
他の言語や環境の仕様とごっちゃになってるんだろうな。

Excel VBAで32ビットと64ビットで、よく使われるデータ型に大きい違いがあるなんて聞いたことがない。

1000 名前:デフォルトの名無しさん mailto:sage [2021/03/18(木) 17:13:11.58 ID:Z7yNcrmt0.net]
LongLong は 64bit 環境でないとサポートされないとか LongPtr のビットサイズやバリアント型の文字列の付加サイズが 32bit と 64bit 環境で違うとかはあるけどまあ些細といえば些細な話だわな
そもそも現状最大行数が Long 型で扱えるのに >>991 が何を心配してるのか興味ある



1001 名前:デフォルトの名無しさん [2021/03/18(木) 17:39:14.84 ID:7fQvPjcg0.net]
64ビットというのも何の組み合わせを言っているのかもわからない。

それにしてもここはマイクロソフトのサポートの人がいないか?

この中途半端さが日本マイクロソフト風なんだが。

1002 名前:デフォルトの名無しさん [2021/03/18(木) 18:16:57.50 ID:d7pvjDlRM.net]
サポートの人が256個なんて言わないだろ

1003 名前:デフォルトの名無しさん mailto:sage [2021/03/18(木) 19:19:46.38 ID:Z7yNcrmt0.net]
組み合わせ?
単に64bit Excelかどうかだけじゃね?

1004 名前:1001 [Over 1000 Thread.net]
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 95日 18時間 57分 23秒

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






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

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

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