20/12/30 05:47:42.87 Oh92F1JH0.net
なんかコンボボックスってクセ強くないですか?
すごく弄りにくくてややこしいです
174:デフォルトの名無しさん
20/12/30 08:41:09.68 mfFqR3/N0.net
クセ強いって言うか、1クリックで2回イベント発動するのがなぁ・・
いちいちIf Flag Then Exit Sub とかいれて、
無理矢理1回しか動かないようにしてるけど、
他にいい方法ないもんかね
175:デフォルトの名無しさん
20/12/30 08:43:56.99 mfFqR3/N0.net
あ、直前に Flag = Not Flag な
176:デフォルトの名無しさん
20/12/30 11:23:33.25 hFnpG/QKH.net
>>173
イベントハンドラは必ず先頭でEnableEvents=Falseするんだよ
そして時間のかかる処理はハンドラの中へ書かずに別プロシージャに飛ばす
177:デフォルトの名無しさん
20/12/30 13:02:57.82 mfFqR3/N0.net
>>175
ごめん、1クリックで2回じゃなくて、
選択肢の表示で1回、選択で1回で計2回の間違い
なのでイベントOFFで逃げられない
178:デフォルトの名無しさん
20/12/30 16:14:15.56 8iwO+LiN0.net
状態管理用のフラグ作って管理している
179:144
20/12/30 23:59:22.86 Oh92F1JH0.net
>>173
マジすか
もしかしてDropButtonClickイベントに.Clearと.AddItemを入れたら選択してもボックス内に表示されなかったりするのって原因それですかね
180:デフォルトの名無しさん
20/12/31 08:04:03.76 qAEGulJg0.net
>>178
そういうの作りながら動作確認しないの?
181:デフォルトの名無しさん
20/12/31 08:17:09.79 sAh4R5unH.net
ネットにサンプルがいくらでも転がってんだから、素直にコピペしとけばいいのに
182:デフォルトの名無しさん
20/12/31 08:39:17.53 5hauEQny0.net
直ぐにネットの野良コードを見て何も考えずにコピペコピペする人は決して【上級者】ではありません!(キリ
183:デフォルトの名無しさん
20/12/31 10:43:23.83 yfYCC+Dx0.net
>>178
多分そう
>>179
最初はそんな罠があると思わないからな
俺は、間にMsgBox入れたら2回出たのでやっと気づいたわ
184:デフォルトの名無しさん
20/12/31 10:53:25.38 8vAoqqdn0.net
罠なんてのは理解してる人間が陥るものであってただの知識不足には何の関係もない
想定の動きしなかったら一つ一つ確認するのは最低限のことだ
185:デフォルトの名無しさん
20/12/31 11:11:12.57 sAh4R5unH.net
プログラムは決して思った通りには動かず、書いた通りにしか動かない
思った通りに動かない時、それは思った通りに書けてない時
186:デフォルトの名無しさん
20/12/31 11:33:07.51 yfYCC+Dx0.net
いや、Windows Update直後に動かなくなるとか普通にあるから
あとVBSだが、最近InputBoxで第1引数の文字が出ないことがある
どこかのファイルから文字を読み込んでるとかじゃなく、
引数に直接指定してるのに
起動しなおすと出るから間違ってはいない
187:デフォルトの名無しさん
21/01/01 09:42:29.21 Sutdgdij0.net
間違っているのではなく見落としているんじゃね
188:デフォルトの名無しさん
21/01/01 17:08:38.32 PXRj0cmP0.net
そりゃPGの動作ってのは環境含めてだからな
189:デフォルトの名無しさん
21/01/02 20:54:06.70 gYfsTimq0.net
不具合がわかっていて放置できるとかうらやましいな
190:デフォルトの名無しさん
21/01/04 03:24:12.12 SOcZuJtz0.net
>>125
検索結果はARTICLEタグの1番目から3番目迄(0番目は検索結果とは違うものに使用されてる。)。
その下のクラス名LawDownloadの下にクラス名pdfFileが幾つか見つかるが、その直ぐ下にAタグにhref=で始まるURLが見つかる。
どれもGetElements系で取得出来る。
最後はURLDownloadToFile使えば良いんじゃね?
191:デフォルトの名無しさん
21/01/04 16:03:39.37 P/FS/eNz0.net
バッチでデスクトップを再起動する人もあまりいないと思うが
デスクトップを再起動するプロシージャ内でExcelをQuitすると、Excelが勝手に再起動する
という現象が起きるので一応報告しとくね
環境によるかも
最初からWin10のPCで、Excel2019
(Win8からのアプデPCで、Excel2013では起きなかったかも)
デスクトップを再起動するコマンドを実行してるのはShell関数
Shell関数は非同期のはずだが、その同一プロシージャ内では、APIのSleepで5秒待っても駄目
DoEventsも駄目
そのプロシージャを一旦抜けて、タイマーで5秒後にQuitを実行すればExcelが再起動しない
デスクトップを再起動するのは、とあるツールの強制終了で残るタスクバーアイコンをクリアするためで
そんな用事のある人も滅多にいないだろうけど(クリアしなくても問題があるわけでもないし)
192:デフォルトの名無しさん
21/01/04 16:52:13.02 P/FS/eNz0.net
Access VBAに比べるとExcel VBAは随分安定してるが
それでもゴリゴリ開発を繰り返すと、謎の実行エラーは起きるよね
ソースを全部エクスポートしてインポートし直すと直るやつ
結構有名なはずだが
謎は実在するのにないと言い張るのは、経験不足なだけ
話題の動作を確認したわけじゃないがね
193:デフォルトの名無しさん
21/01/04 18:20:52.45 WAisD+UGM.net
あまり何もかもをまとめて処理するのはリスキー過ぎる
小分けにして段階を踏め
194:デフォルトの名無しさん
21/01/04 21:23:02.41 XJuzf2wY0.net
VDI環境でメモリ4ギガしか振られてないんだけど、グローバル変数を4つくらい作るとメモリ不足エラーが出て不安定になります。
割り当てるメモリを増やせばエラー収まりますか?
195:デフォルトの名無しさん
21/01/07 11:25:47.54 vMxmEGnU0.net
質問というか相談です
フォーム上のテキストボックスを右クリックした時、元の背景色が通常色の場合は黄色に、黄色の場合は通常色にと切替を行い、塗り潰しチェックの様な事が出来るようにした物を作りたいです
なのでMouseDown若しくはMouseUpで拾ってButton=2の場合に、テキストボックスの背景色を切り替える方向で行こうと考えました
MouseDownは1度のクリックで2度処理を行ってしまう為、MouseUPを使用しようと思いましたが、
正直押した瞬間ではなく離した時点なのが至極個人的に違和感バリバリなのでMouseDownでどうにか処理できないかと考えています
その場合、静的変数を用いて2回目かどうかの判定を行うのが良いのでしょうか
196:デフォルトの名無しさん
21/01/07 12:14:22.04 lqyAMCWOM.net
Timerで1秒以内の2回目は止めたら
197:デフォルトの名無しさん
21/01/07 13:06:20.76 LEN4uLCLd.net
for eachでフィルターがかけられた列をコレクションし、現在のセルと一つ下のセルの値を比較しようと思ったのですが、offsetだと隠れた行の数値が参照されてしまいます。
フィルタリングして可視状態の一つ下のセルを参照するには、どうすればよいのでしょうか。
198:デフォルトの名無しさん
21/01/07 15:55:15.71 JVCs6nJOM.net
無理だな
一つ上のを覚えといて比較しな
199:デフォルトの名無しさん
21/01/07 17:04:40.85 lqyAMCWOM.net
該当セルから下方向に、
VidibleがTrueなセルに当たるまで探せば
200:デフォルトの名無しさん
21/01/07 20:16:51.59 GNpPPMMj0.net
>>194
マウス離した時に実行するのがExcelに限らず一般的な動作だと思うが
201:デフォルトの名無しさん
21/01/07 23:26:20.22 q8h4Rq+X0.net
確かに
↓\→ 弱ボタン離す、でも波動拳出るな
202:デフォルトの名無しさん
21/01/07 23:51:53.97 CAJlIzxl0.net
はどうけんてなんですか
203:デフォルトの名無しさん
21/01/07 23:59:30.52 GNpPPMMj0.net
イギリスのロックバンドのことです
204:デフォルトの名無しさん
21/01/08 07:36:54.65 /1SPkI99a.net
行とか列のデータのある範囲を選択するメソッドありますか?
currentregionの1行だけみたいなイメージで
今思いつくのは無理くり
Range("C5").CurrentRegion.Offset(略).Resize(略~
ないしは
Endとかで割り出してから選択する
とかなんですが
なんかもう少しスマートな書き方があれば知りたいです
205:デフォルトの名無しさん
21/01/08 07:38:15.90 /1SPkI99a.net
説明捕捉
>>203
の表の列はAからD以上まである感じです
206:デフォルトの名無しさん
21/01/08 08:45:53.52 F7dsXzNTM.net
columnsとかrowsプロパティで範囲から希望の列や行を取り出すじゃ駄目なの?
207:デフォルトの名無しさん
21/01/08 09:53:03.11 /1SPkI99a.net
>>205
いや、rowsだと行全体が選ばれてしまうので
例えば
1行目は4列
2行目は5列
とデータの入っている列数がバラバラな場合
(値は全て入っているものとして)
それぞれ4列とか5列分ぴったりに選ぶメソッドは無いものかと
C列基準とかで選べたら一番いいけど
A1選んで「ctrl+shift+→」と同じ結果でもいいです
208:デフォルトの名無しさん
21/01/08 10:06:49.06 /1SPkI99a.net
すみません
>>205
のヒントで自己解決しました
Range("C5").EntireRow.SpecialCells(引数)
でいけました
失礼しました
209:デフォルトの名無しさん
21/01/08 10:12:04.47 0GZaxWieH.net
>>206
一発で求めるメソッドやプロパティはない
たとえば3行目だけ選択だと、たぶんこれが最短
Range([A3], [A3].End(xlToRight)).Select
210:デフォルトの名無しさん
21/01/08 10:18:16.84 /1SPkI99a.net
>>208
ありがとうございます
やっぱり1発ではないんですね
自分が書いたspecialcellも定数と数式とが混在してると
やはりUnionで繋ぐなどしかないので
煩雑になるなあと思っていたので
その書き方の方が良さそうですね
211:デフォルトの名無しさん
21/01/09 19:33:14.89 tpxthpMW0.net
Dirコマンド、
コマンドプロンプトに直書きだとローカルもネットワークも取れるのに、
VBAからWSHで取ると、ローカルしか取れないのは何故?
212:デフォルトの名無しさん
21/01/09 22:38:35.27 sDO7vtGda.net
理由は知らないけど、コマンドプロンプトのDIRコマンドと、VBAのDir関数は別物です
213:デフォルトの名無しさん
21/01/09 22:40:13.80 sDO7vtGda.net
あ、失礼いたしました
VBAのDirでなく、スクリプト経由なのか
1つ前のレスは撤回します
214:デフォルトの名無しさん
21/01/10 01:05:09.81 kg6XuktW0.net
>>210
まあユーザ認証回りだとおもうけど
ちょっとコード晒してみて
215:デフォルトの名無しさん
21/01/10 01:13:14.86 4Xu9louP0.net
>>213
これそのまま
URLリンク(officetanaka.net)
sCmd = "dir [ローカル]" だとOKで、
sCmd = "dir [ネットワーク]" だと取れない
Len(Result)で調べると0文字になってる
コマンドプロンプトでやると取れるから、打ち間違いじゃないと思うんだけど
216:デフォルトの名無しさん
21/01/10 01:40:53.81 bwHYpHvWH.net
>>214
手動でコマンドプロンプトからネットが見えるか再確認した?
Windows Updateするとファイル共有が勝手にoffにされることがけっこうあるよ
217:デフォルトの名無しさん
21/01/10 02:36:39.33 CEBDD+E50.net
>>215
そんなことねーよ
死ね
218:デフォルトの名無しさん
21/01/10 08:23:59.20 4Xu9louP0.net
>>215
確認した
\\ネットワークにChr(34)入れて"\\ネットワーク"にしてもダメ
(↑半角だと書き込めない)
219:デフォルトの名無しさん
21/01/10 08:51:06.81 kg6XuktW0.net
>>214
[ネットワーク]の指定方法正しいか?
\\サーバ\共有名 でないと、\\サーバ だけではだめだぞ
手元で試したけど、うちではUNCパスでもネットワークドライブでもちゃんと動いた
ただし、パスワードは事前に保存済み
パスワード保存してないリソースはテストしてない
220:デフォルトの名無しさん
21/01/10 09:02:01.60 qJ1NhQml0.net
ネットワークパス使ってファイルアクセス可能かまず調べる
221:デフォルトの名無しさん
21/01/10 09:03:56.67 4Xu9louP0.net
>>218
\\サーバ\共有名って、\\サーバ\共有されてるフォルダ名?
それなら合ってる
ちなみに\\アドレスの数字\共有されてるフォルダ名ってのも試した
パスワードは、エクスプローラーから開くときにパスワード入れなくていい状態になってるから、
保存済だと思う
222:デフォルトの名無しさん
21/01/10 11:56:30.27 bwHYpHvWH.net
うちではサンプルのままで問題なく共有フォルダのファイル一覧が出るからWSHのせいではないと思う
エラーコードやエラーメッセージは何も出てない?
Windowsのシェルを置き換えるとか、何かマニアックなカスタマイズしてる?
223:デフォルトの名無しさん
21/01/10 12:45:12.99 4Xu9louP0.net
>>221
いや、サンプルのC:\"を\\~に変えただけ
エラーも何もなく0文字で返ってくる
強いて言えば、試したのがVPN環境
後でVPNなしでどうなるか試してみるけど
224:デフォルトの名無しさん
21/01/10 14:01:53.42 bwHYpHvWH.net
>>222
ホスト側のOSはWindows?双方にSMBは間違いなくフルセットで入れてある?
225:デフォルトの名無しさん
21/01/10 16:37:15.38 4Xu9louP0.net
>>223
Windows
SMBがどうとかは、IT部門じゃないからわからない(会社の)
226:デフォルトの名無しさん
21/01/10 17:55:38.15 kg6XuktW0.net
エラー(メッセージ)が出てないのはたぶん標準出力しかひらってないから
標準エラー出力になんか出てると思われ
227:デフォルトの名無しさん
21/01/10 18:05:33.95 kg6XuktW0.net
つかここまでしてわざわざDirコマンド使う必要あるのか
何がやりたいんだ
228:デフォルトの名無しさん
21/01/10 20:17:18.14 4Xu9louP0.net
>>226
サーバーの空き容量調べたいだけなんだけどね
方法は他にもあるけど、いちいちドライブ文字設定しなきゃいけないとか、
何かアドインみたいなの入れなきゃいけないとかあるし
Dirコマンドが一番シンプルだし、
batでテキスト出力するのは問題なくできるから、
それを直接変数に入れられないかなと思ったんだけど
229:デフォルトの名無しさん
21/01/10 20:39:03.57 kg6XuktW0.net
>>227
WSHつかうならDriveオブジェクトがUNCパスいけるっぽいけど
URLリンク(docs.microsoft.com)
230:デフォルトの名無しさん
21/01/10 23:21:47.74 CEBDD+E50.net
馬鹿が聞いて馬鹿が答えるスレ
231:デフォルトの名無しさん
21/01/10 23:32:18.31 LL6dwzdY0.net
>>229
お前は馬鹿馬鹿いうだけの馬鹿だな
232:デフォルトの名無しさん
21/01/11 22:06:06.53 pqPOJoG50.net
このスレでお世話になりまくった者だけど
金欲しさに工場部門の夜勤に今年から異動したからVBA触ることももうない
数年後間接部門に戻れるかわからんけど
いや戻れないだろうけど
スレの全員に感謝だわ
本当に色々教えてもらったし構文そのまま頂けた
本当にありがとう
233:デフォルトの名無しさん
21/01/11 23:57:28.02 pfNMzUxK0.net
生産管理でまた使うことになったりして・・・
234:デフォルトの名無しさん
21/01/12 01:59:02.62 OTa0Zw/f0.net
VBAに触らなくて良くなるだけで羨ましいわ
235:デフォルトの名無しさん
21/01/12 19:01:11.25 dCVmoeOp0.net
>>231
製造現場になじめないで会社辞めるに1ガバチョ
236:210
21/01/13 19:37:02.44 lspxZscb0.net
Dirコマンドの件で回答くれた皆さん
パスにUTF-8で文字化けする文字を含んでいたのが原因だったわ
しょうもないオチでごめんなさい&ありがとう
237:デフォルトの名無しさん
21/01/13 20:54:16.63 aeNWg8u3H.net
UTF-8からシフトJISに正しく変換できない文字かあ
葛飾区とか草薙とか色々あるよな
記号も~とか¥とか半角スペースとかマイナスとか、よく使うのに化けるのがたくさんある
238:デフォルトの名無しさん
21/01/14 02:22:27.50 JNzdWMyDd.net
>>235
それを解決できない馬鹿が中途半端に書き込むなよ
239:デフォルトの名無しさん
21/01/14 05:19:52.68 ecyWCD0F0.net
知恵袋よかこっちの方がよほど親身なのは住人が優しくてイイ人ばかりだからでつか?
240:デフォルトの名無しさん
21/01/14 07:59:40.60 gDZI6jyWr.net
=TEXT(ROUNDDOWN(a1,1-INT(LOG(a1))),IF(1-LOG(a1)>0,"0."&REPT(0,1-INT(LOG(a1))),"0"))
をVBAで記述するとどうなるのか教えて欲しいです。よろしくお願いします。
241:デフォルトの名無しさん
21/01/14 12:22:18.25 YIqcuI1O0.net
a = [TEXT(ROUNDDOWN(a1,1-INT(LOG(a1))),IF(1-LOG(a1)>0,"0."&REPT(0,1-INT(LOG(a1))),"0"))]
242:デフォルトの名無しさん
21/01/14 12:56:03.99 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:デフォルトの名無しさん
21/01/14 18:59:26.33 +2NwXrek0.net
>>240
マジか・・
普通に書くか、いちいちWorksheetfunctionとか書いてたわ
244:デフォルトの名無しさん
21/01/14 20:01:26.65 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:デフォルトの名無しさん
21/01/14 20:33:06.60 gxjpIPZs0.net
シートを指定する
名前の適用範囲を確認する
246:デフォルトの名無しさん
21/01/14 20:38:30.13 SduAKFWs0.net
>244
名前の適用範囲を変えてみたりもしたんですが、だめでした。
247:デフォルトの名無しさん
21/01/14 20:52:33.18 SduAKFWs0.net
>>244
すみません、解決しました。
名前の適用範囲を参照範囲のシートあるいはブックにして、且つVBAでそのシート指定すればいけました。
248:デフォルトの名無しさん
21/01/14 20:55:12.26 yNTWs1ET0.net
>>243
In Rangeの範囲がそのシートだから、そこに名前付きセルはない
その範囲のあるシートがわかってるなら、In 他シート.Range("... のように指定するか
同一ブック内ならIn ThisWorkbook.Names("名前付きセルの名前").RefersToRange
とかでいけんじゃね
249:デフォルトの名無しさん
21/01/15 07:45:14.16 fl9fRXksr.net
>>240
>>241
ありがとうございます。
250:デフォルトの名無しさん
21/01/16 04:08:04.09 wM/4uvwh0.net
①Set DB As CurrentDb
②Set DB As CurrentDb()
この二つに使い分ける意味はありますか?
251:デフォルトの名無しさん
21/01/16 10:41:53.52 MRodpgDG0.net
ないと思う
252:デフォルトの名無しさん
21/01/16 16:36:07.57 SaJeHrUX0.net
①はカッコつけたい時
②はキーボード打つのめんどくさい時
253:249
21/01/16 19:03:22.47 wM/4uvwh0.net
>>251
ありがとう。教本読んだら2種類出てきたので、
何か違いはあるのかと思いまして。
同じだったのか…。
254:デフォルトの名無しさん
21/01/16 19:33:57.85 MRodpgDG0.net
同じではない
必要性を感じないというだけ
255:デフォルトの名無しさん
21/01/16 20:50:02.04 wM/4uvwh0.net
必要ないのを同じと表現したの
256:デフォルトの名無しさん
21/01/16 21:12:53.28 haZmUiAy0.net
>>253
使い分ける意味がないのに同じでないのはないってどういう意味?
257:デフォルトの名無しさん
21/01/16 21:22:36.09 BbkPLu/V0.net
ExcelのVBAにCurrentDbなんてないのは置いておくとしても
その文ってどっちもエラーになると思うんだが
258:デフォルトの名無しさん
21/01/16 21:38:23.62 wM/4uvwh0.net
あ、すみません…
AccessVBAのスレってあったんですね。
申し訳ない。
あと1As」 って書いちゃってたけど「=」
259:デフォルトの名無しさん
21/01/16 21:39:02.86 wM/4uvwh0.net
訂正
あと「As」って書いちゃってたけど当然「=」でした
260:デフォルトの名無しさん
21/01/16 21:59:42.58 BbkPLu/V0.net
Accessで試したけどどっちも通って同じ結果だな
俺の予想では2はデフォルトプロパティの呼び出しになると思ったんだが
引数省略したら、かっこそのものも除去されて評価されてるのかもしれん
つかその教本ってなんだ?
261:デフォルトの名無しさん
21/01/16 22:14:43.61 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:デフォルトの名無しさん
21/01/16 22:21:15.40 wM/4uvwh0.net
CurrentDb自体を変数にするとか、それはもう別の話では
263:デフォルトの名無しさん
21/01/16 23:00:55.60 BbkPLu/V0.net
前提を絞らなければ、動作に違いが出るかどうかの話だから別の話じゃない
変数名の良し悪しに関してはまあ別だが
つかその教本とやらを曝せ
俺的にはデータベースのインスタンスを取得する目的で後者の書き方とかなら、そっちのほうが問題だわ
264:デフォルトの名無しさん
21/01/17 05:07:21.78 Bpeq2DcA0.net
実際にはやらない無理な方法で無理矢理話を混ぜ返したいだけで、
そもそも意図を汲んでない
265:デフォルトの名無しさん
21/01/17 18:18:57.16 6FyugFd+d.net
初心者です
オートシェイプの名前を検索して置換できるコードを教えてください
調べてもオートシェイプ内のテキスト変換しかありません
お願いします
266:デフォルトの名無しさん
21/01/17 20:37:25.77 EfLIE7TKH.net
>>264
オートシェイプの個数は
sheets("Sheet1").shapes.count
名前は
sheets("Sheet1").shapes(1).name
267:デフォルトの名無しさん
21/01/17 21:03:01.02 Bpeq2DcA0.net
それはすでに使ってるシェイプの名前だろう
使ってない奴から選びたいんだろう
268:デフォルトの名無しさん
21/01/17 21:25:06.25 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:デフォルトの名無しさん
21/01/17 21:32:27.18 sTdEmPzt0.net
聞く気ないだろw
270:デフォルトの名無しさん
21/01/17 22:02:29.00 Bpeq2DcA0.net
そのようだなw
271:デフォルトの名無しさん
21/01/17 22:10:02.50 vD50J/Wf0.net
適当にコードをコピペして聞きだそうとする手口
272:
21/01/17 22:23:21.58 gYjAP2D00.net
質問です。よろしくお願いいたします。
VBA でスクレイピングを行っています
対象ページ:URLリンク(www.rakuten-sec.co.jp) ‥①
取得したい要素、 CSS セレクタで記載:document.querySelector("#cFx > table:nth-child(6) > tbody > tr:nth-child(1) > td.cell-02 > em").innerText ‥‥②
しかし、②は google chrome では取得できて、しかもコンソールで②を指定した場合も目的の値を取得できていますが、
②を IE11 ->F12 で表示できるコンソールに食わせても、目的の値を取得できません。
質問1:google chrome におけるページ①のCSSセレクタ②は、IE11 ではどのようになるのでしょうか?‥‥③
質問2:IE11 で③を取得する方法はどのようなものでしょうか?
以上よろしくお願いいたします。
273:デフォルトの名無しさん
21/01/17 23:48:28.14 7Jg8yd50M.net
>>267
いろいろと修正箇所が多いので
URLリンク(qiita.com)
このサイトのコードの
4行目の後に
Dim findStr As String, replaceStr As String
findStr = InputBox("置換対象文字列")
replaceStr = InputBox("置換文字")
'各Shapeに対する処理の2箇所に
shp.Name = Replace(shp.Name, findStr, replaceStr)
を追加すればうまく出来ると思う
ちなみに、理由は知らないけどリボンのページレイアウトの中のオブジェクトと選択と表示のシェイプの名前を変えずにデフォルトのままだとVBAが出す名前が英語表記になるので注意
274:デフォルトの名無しさん
21/01/18 02:58:44.09 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:デフォルトの名無しさん
21/01/18 06:51:20.31 hmFdo1dud.net
>>272
言われた通りにやったら出来ましたありがとうございます。
自分がやりたかったことと同じでした。
>>273さんも整理してくれてありがとうございます。
276:デフォルトの名無しさん
21/01/18 12:58:34.46 JT9EgKXH0.net
>>271
漏れが、Ruby, Selenium WebDriver, Chrome でアクセスしたら、空要素が返ってきた
CSS の :nth-child() 擬似クラスは、
兄弟要素のグループの中での位置に基づいて選択します
URLリンク(developer.mozilla.org)
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> (URLリンク(www.rakuten-sec.co.jp))
at l (URLリンク(www.rakuten-sec.co.jp))
at c (URLリンク(www.rakuten-sec.co.jp)) undefined",
source: URLリンク(www.rakuten-sec.co.jp) (2)
ひょっとして、そのサイトがバグっているのかも?
それかログインなど、特別な認証が必要なのかも?
277:275
21/01/18 13:03:01.53 JT9EgKXH0.net
それか、
jquery.share-button.js
と書いてあるから、
jQuery で作った画面か何かの、ボタンをクリックするなどの、
人間による操作が必要なのかも?
278:デフォルトの名無しさん
21/01/18 13:14:48.80 ipljQC5/a.net
まあでもVBA関係ないな
279:275
21/01/18 13:39:24.37 JT9EgKXH0.net
そのサイト固有の問題かも。
それに、IE 11 はサポート切れで、多くのサイトで、まともに動かない
基本、Chrome しか動かない。
Chrome以外のブラウザは、まともに動かない
280:
21/01/18 23:04:09.16 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:デフォルトの名無しさん
21/01/18 23:19:34.42 froKP66m0.net
スクレイピングが目的なら悪いことは言わないから大人しくpythonあたりにしとけ
282:デフォルトの名無しさん
21/01/19 00:16:19.06 9X7jktdiM.net
今月からpythonを始めてサイトから文字を取ってきてエクセルにぶち込むくらいなら一週間で出来たな
その後のエクセルの処理はもちろんVBAだけどなw
283:デフォルトの名無しさん
21/01/19 00:26:22.17 i//ZhdNzH.net
最近のホームページはブラウザごとに動作が違うから、本などを参考にするなら同じブラウザを使わないと、
本質と無関係なところではまって時間を無駄にすることになる
あと株価なんかスクレイピングしてもまったく意味ないぞ
どんだけ大量の数字を集めたところで、それで利益が出せると思ったら大間違いだからな
284:
21/01/19 01:15:30.84 LIV1Afk50.net
>>282
>どんだけ大量の数字を集めたところで、それで利益が出せると思ったら大間違いだからな
そのとおりだと私も思います、ただし、さや取り(裁定取引)を米国株に適用するのなら商機あり、とみています
さや取り(裁定取引)とは:URLリンク(investars.jp)
285:デフォルトの名無しさん
21/01/19 06:36:37.01 6NIqY8sOM.net
そもそも自動売買に使う頻度でスクレイピングって規約確認したのか?
286:275
21/01/19 07:21:09.11 JrdPscbl0.net
>>275
を修正
275は、ヘッドレスモードで動かしたので、エラーになったけど、
表示させて動かしたら、エラーにならなかった
でも、要素は取得できなかった
IE11 は、もうサポート切れじゃないの?
使わない方が良い
基本、Chrome を使うべき!
287:275
21/01/19 07:23:53.98 JrdPscbl0.net
勝手に頻繁にスクレイピングしたら、業務妨害で逮捕されるよ
基本、どの会社のサービスでも、
相手と契約して、API を使わないといけない
288:275
21/01/19 07:51:13.37 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
21/01/19 08:28:20.74 JrdPscbl0.net
Chrome のF12 開発者ツールのコンソール画面を開くと、幾つかエラーが出てる
ログインしてるとか、営業時間内とか、
何かの条件が揃わないと、
そのページ内に、id="cFx" が現れないのかも
290:
21/01/19 23:14:02.19 LIV1Afk50.net
>>286
IB証券との契約を検討中です
nyse と nasdaq 両市場の全上場株式を取得する必要はありますが、頻度は一社につき一日に一回だけでいいのが裁定取引のいいところだと思っています
291:275
21/01/20 06:54:28.87 sOzWFlEJ0.net
エンジニアチャンネル・粟島が、
2つの取引所の価格差を利用して、Ruby で鞘取りしてる
【検証】プログラミングでビットコインを自動売買すると一週間でいくら稼げるのか?
URLリンク(www.youtube.com)
292:デフォルトの名無しさん
21/01/20 19:14:01.82 WKaEu4ler.net
初心者です。
質問をさせてください。
A列のデータをソートして、境目に改ページを適用するVBAを組みました。
その後にもう1つ動作を組み込みたいのですが、可能でしょうか?
組み込みたい動作は、
改ページの境目の1つ上のC列の内容をF1セルに都度反映させる。
イメージとしては、改ページで分けた内容ごとにタイトル行の一部を変えたい、といった感じです。
例:都道府県別に改ページをし、
東京の場合はタイトル行に東京と入れ込む。
そもそも無理なのかもしれませんが、お伺いしたく。。
長文失礼しました。
ご教示いただけますよう、お願いいたします。
293:デフォルトの名無しさん
21/01/20 20:49:26.31 j7C4dot+0.net
まずその通りやってみればいいのに
294:
21/01/20 20:58:51.72 TIrvz66u0.net
>>290
面白い動画を紹介いただきありがとうございました。
しかし裁定取引では、売りと買いの両方ができないと実現は困難かと考えています
BTC を売りから入ることは、たしか、まだできなかったのではないかと思います
295:デフォルトの名無しさん
21/01/21 21:48:26.77 YIL/x+Jj0.net
ソルバーが全然うまくいかないし会社の人も誰もソルバー自体知らんかった
マイナーか…
296:デフォルトの名無しさん
21/01/22 02:14:04.86 JMbV/GNCa.net
何て会社?
297:デフォルトの名無しさん
21/01/22 02:36:21.59 hl68e8TDH.net
ソルバーは基本原理がわかってないと、どんな計算でもできると思い込んでるとはまる
298:デフォルトの名無しさん
21/01/22 08:31:07.53 2tHgWLf00.net
上司と折りがあわずに部署異動になったのに
その職場の連中がlineでマクロが使えんくなったとか簡単に直せるかとか聞いてきて本当にうざい
自分も覚えてないの一点張りで返してるけど
Excelの数式すらまともに使えずに開発タブもチェックしてない連中に直せんわ
連絡してくんなよ
299:デフォルトの名無しさん
21/01/22 08:35:33.62 +nZCsLp6M.net
で、質問は何ですか?
300:デフォルトの名無しさん
21/01/22 08:41:50.70 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:デフォルトの名無しさん
21/01/22 10:48:34.97 NBj8+FQEd.net
エクセル VBA マクロで良い参考書はありますか?
302:デフォルトの名無しさん
21/01/22 10:54:17.14 Ti3taKZXr.net
まだブラウザ操作しようなんてとこあるのか
303:デフォルトの名無しさん
21/01/22 12:22:32.49 I4Aue8uTa.net
>>296
できると思ってんだけどなー、できないやつなのかもしれんな
304:299
21/01/22 14:11:09.33 hJPaHw/b0.net
>>301
Excel と IE というどのPCにでも入っているもので使えるので、5年前くらいからやってます・・
今回、PCに何かインストールしないとできなくなるみたいなので、どうしようかと・・
305:デフォルトの名無しさん
21/01/22 14:15:47.27 y6abuyBz0.net
どうしようもないだろ
はい、次
306:デフォルトの名無しさん
21/01/22 14:41:53.73 hl68e8TDH.net
>>303
何も追加インストールせずにEdgeをコントロールする方法ならここに書いてある
サンプルは32bit版だけどPtrsafe追加だけで64bitでも動く
URLリンク(www.ka-net.org)
ただしこの方法はWindowsやEdgeのバージョンが上がると使えなくなる可能性があるので注意
307:デフォルトの名無しさん
21/01/22 15:06:57.75 KA18g7jM0.net
Ruby, Selenium WebDriver, Chrome が一般的
308:299
21/01/22 16:52:44.80 hJPaHw/b0.net
>>305
ありがとうございます。最新のChromeベースのEdgeでは使えないことが判明しました・・
>>306
rubyというのを使う場合、実際に動かすときはxlsmファイルと別に何かプログラムを記載した
ファイルを準備し、そのファイルを実行するというイメージになるのでしょうか?
309:306
21/01/22 17:48:37.37 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 "URLリンク(login.yahoo.co.jp)
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:デフォルトの名無しさん
21/01/22 19:04:19.47 fPx0q4lA0.net
>>308
アホか?
WebDriver使って良いならVBAだって出来るだろwww
311:デフォルトの名無しさん
21/01/22 19:10:53.50 AXkriLC/M.net
seleniumでググるとPythonのほうが出てくると思うんだが本当にRubyのほうが一般的か?
312:デフォルトの名無しさん
21/01/22 19:14:00.08 j9mQzeTK0.net
狭い世界を一般的という人はどこにでもいる
313:デフォルトの名無しさん
21/01/22 19:26:14.35 AXkriLC/M.net
環境のこと考えるならGASかpowershellを検討してみては?
314:デフォルトの名無しさん
21/01/22 23:52:36.81 hl68e8TDH.net
>>307
最新のEdge (バージョン88.0.705.50 Chromium) で動いた
315:デフォルトの名無しさん
21/01/23 00:14:35.39 tp3qQjJz0.net
>>313
それEdge じゃねえだろ。
今のEdgeはInternet Explorer_Server無いぞ。
316:デフォルトの名無しさん
21/01/23 04:24:33.18 W5gOUdwX0.net
できる奴はネットも本も見ない、わからない事はF1押して調べるだけ
これ定説
317:デフォルトの名無しさん
21/01/23 04:56:15.16 xJNbQORc0.net
みんながそんな熟練者じゃないんだし
俺みたいなど初心者をここで助けてくれた人もいる
平和にいこう
318:デフォルトの名無しさん
21/01/23 09:29:09.37 W5gOUdwX0.net
そうですよねやっぱ
どこかの知恵袋と違って、ここはみんな優しく解説までしてくれる。器大きいぜ
319:デフォルトの名無しさん
21/01/23 11:21:37.02 XQqwzCqOd.net
どの方法だってバージョンアップで使えなくなる可能性はある
CSSやJavaScriptが必要なければXHRオブジェクトが無難
完全にデファクトスタンダードと言えるブラウザが今は存在しないから、VBAでスクレイピングは鬼門になりつつある
今はまだWindowsマシンには必ずIEが入ってるから、しばらくはIEでやってくのがいいんじゃないかなあ
320:デフォルトの名無しさん
21/01/23 12:55:12.09 E44LngeNd.net
俺が昨日、勉強したことを共有するぞ
VBAの記述の仕方は、オブジェクト.プロパティの順番だ
覚えておけよ
321:デフォルトの名無しさん
21/01/23 12:56:50.53 E44LngeNd.net
MsgBox でTESTと表示できたときの感動ったらなかったね!
これから、少しずつ勉強するぞ
322:デフォルトの名無しさん
21/01/23 18:45:02.47 H5pOJUEN0.net
>>305
それIEでも使うな。
よくわからんけど、F12で中が見られない子ウインドウが出るサイトとかある。
323:デフォルトの名無しさん
21/01/23 21:45:57.51 AoWSUa07d.net
>>321
それ単なる画像じゃね?
324:デフォルトの名無しさん
21/01/23 23:31:46.72 H5pOJUEN0.net
>>322
ObjectFromLresultとgetElementByで値取れるから画像じゃないと思う。
どういう仕組みのウインドウなのか知らんけど。
325:デフォルトの名無しさん
21/01/24 05:01:50.09 O96X//w/0.net
田中君
広瀬君
桜井君
松岡君
326:デフォルトの名無しさん
21/01/24 11:41:17.66 NPfUvm+L0.net
>>323
それで取れるならF12でも取れるんじゃね?
それかF12押してる対象が違うか。
327:デフォルトの名無しさん
21/01/25 00:06:00.16 bvf1oedN0.net
>>325
クリックして、アクティブ&最前面にしてF12押しても何も出てこないんだよね。
328:デフォルトの名無しさん
21/01/25 01:12:50.11 YwFiLI6Vd.net
>>326
エロサイトでも怒らないから、ちょっとそのサイト晒して
329:デフォルトの名無しさん
21/01/27 02:51:52.41 jiG8/Aof0.net
>>326
Fが12個表示されてないか?
330:デフォルトの名無しさん
21/01/27 08:04:15.56 rs7ltanux.net
F*ck F**k FFFFF**k
331:デフォルトの名無しさん
21/01/27 16:24:41.99 q3mmuO0LH.net
下記の4行で問題なくIEでURL開けたのですが、
Dim objIE As InternetExplorer
Set objIE = New InternetExplorer
objIE.Visible = True
objIE.Navigate "URLリンク(aaa.com)
保存する部分のプログラムがネット上で見つかりません。
hogehoge.htmlでc:\でもエクセルファイルパスでも。
開ききるまでの Do Loop とか、参照の追加とか、
他の必要な事項はわかったのですが、「保存」だけがわかりません。
お願いします。
332:デフォルトの名無しさん
21/01/27 16:48:32.96 PEXoVVseH.net
>>330
URLDownloadToFile
URLリンク(tonari-it.com)
333:デフォルトの名無しさん
21/01/27 19:08:59.20 SKP56GPf0.net
コレクション便利すぎワロタ
334:299
21/01/27 23:35:24.32 L0AdvpAm0.net
とりあえず個人のPCでSelenium BasicとChrome Driverをダウンロードして、VBAでChromeを操作してみました。
構文の違いを理解するのにちょっと時間がかかりましたが、VBAでIE操作と同じようなことができました。
しかし、IEに比べてかなり遅いですね。。
とくにFor-nextとかFor eachとかで複数個あるClassを一個ずつ取得してくのがかなり遅い・・。
335:デフォルトの名無しさん
21/01/28 05:46:17.68 u8tdLuFb0.net
>>330
最近のWindows には、curl コマンドも入った
コマンドプロンプトで、where curl
と入力すると、
C:\Windows\System32\curl.exe
これとは別に、PowerShell にも、curl コマンドがあるけど、
これは別のコマンドのエイリアスだけど
336:デフォルトの名無しさん
21/01/28 10:11:50.01 ecmWwtyQH.net
>>331
ありがとうございます。無事目的は果たせました。
ただし、2点、罠が潜んでました。解消しましたので謎解きは不要です。
1 コピペで張り付けたとき、URLを指定してる行が赤くなって、VBAに否定されました。
URL"のあとのセミコロンがお気に召さなかったようです。削ったら赤い表示は消えました。
コピペしたときに改行コードがかわった?
2 取りに行く相手が社内サーバのドメイン持ちだったのでドメイン指定したら、なんかダメで、
MACも以前そんな反応したことを思い出して、IPアドレス(192.168.*.*)で指定したら動きました。
>>334
curl について調べましたが、数か所で見た説明自体がわかりませんでした。(泣)
お手数かけました。
337:デフォルトの名無しさん
21/01/28 10:21:40.83 8thmnp2a0.net
>>315
熟練者はそれだけ分かるのかー
そもそもvbaのマニュアルというものがないしやりたいことのプロパティやメソッドは皆どうやって調べてるのか気になる
まあ今はネットあるけどネット普及してなかった90年代はF1で調べてた?
338:デフォルトの名無しさん
21/01/28 10:58:39.20 3f25njR4H.net
>>336
90年代はみんなマニュアル本を買ってた
中身は英語のオンラインヘルプを翻訳して印刷しただけの物なんだけど、誤植と誤訳だらけ
VBAに限らず、1冊3000円~8000円ぐらいのぶ厚い本が大きい本屋のパソコンコーナーに並んでた
339:デフォルトの名無しさん
21/01/28 11:18:10.18 3f25njR4H.net
こういう辞書みたいなやつ、みんな持ってた
URLリンク(i.imgur.com)
340:デフォルトの名無しさん
21/01/28 11:56:54.04 RkzGmpaJd.net
あ、そうなのか
こうゆう辞書みたいな本はマイクロソフトから情報もらって作ってたのかなね
英語ヘルプで試行錯誤で作ってたのかね
341:デフォルトの名無しさん
21/01/28 11:58:15.69 8m13k+420.net
これじゃないけど分厚いの1冊持ってるわ
342:デフォルトの名無しさん
21/01/28 15:38:23.08 jA4rpiExM.net
今のExcel VBAって日本語ヘルプ付いてないの?
343:デフォルトの名無しさん
21/01/28 15:51:32.46 zfNxSqnZd.net
>>339
発売前に英語版のヘルプが入ったCDをMSから送って貰って、それを手分けして翻訳した
Officeじゃないけど翻訳のバイトしてた
>>341
あるけど、今はオンラインヘルプに飛ばされるからネット環境がないと見れない
昔のバージョンはローカル化できたけど今は無理だと思う
344:デフォルトの名無しさん
21/01/28 15:53:40.51 8m13k+420.net
F1ヘルプはあんま役に立たない
345:デフォルトの名無しさん
21/01/28 15:55:46.33 8thmnp2a0.net
>>342
バイトすごいですね
今は何の職業?
346:デフォルトの名無しさん
21/01/28 19:35:23.37 1VXsvNu50.net
Excelのハイパーリンクをクリックするたびに
MSのサイトにアクセス先の情報を送って
そこからリダイレクトしていたという
衝撃の事実を今日知った。
10年以上つかってて気が付かなかったよ
死ねこいつら
347:デフォルトの名無しさん
21/01/28 20:13:31.96 RkzGmpaJd.net
>>345
え、これマ?
348:デフォルトの名無しさん
21/01/28 20:18:19.29 cYs3zIiO0.net
ソースを
349:デフォルトの名無しさん
21/01/28 20:26:06.12 1+p+qv3s0.net
これ買っとけばいいみたいなど定番の本はある?
ネットでやりたいことをちょこちょこパクって繋げてるけど限界だわ
汎用性の高い一つの大掛かりなVBAを組もうとしたら圧倒的に知恵がない
350:デフォルトの名無しさん
21/01/28 20:34:03.81 8m13k+420.net
ネットで調べても書き方が人それぞれだったりちゃんと整理されれなかったり
肝心の自分の目的を書いてなかったりそんなんばっかだからな。
それらの無駄とストレスを減らすために、辞書は1冊あった方がいいな。
書き方と順序が統一されてるだけでも有用。
351:デフォルトの名無しさん
21/01/28 20:35:31.88 8m13k+420.net
できる大辞典は定番ではある
他の本はいらん
これにないなら諦めて他で調べればいい
352:デフォルトの名無しさん
21/01/28 20:54:55.16 8thmnp2a0.net
vbaでIEとかChromeとか操作できるのは最近分かったけど(やったことはない)、他に操作できるアプリってどのくらいあるの??
353:デフォルトの名無しさん
21/01/28 20:55:48.34 8m13k+420.net
エッジもできる
354:デフォルトの名無しさん
21/01/28 21:05:03.93 8thmnp2a0.net
あ、ブラウザー以外でおねがいしゃす
355:デフォルトの名無しさん
21/01/28 21:09:54.36 eBfsAdOM0.net
>>345
それExselとか書いてないかい?w
356:デフォルトの名無しさん
21/01/28 21:27:46.20 1VXsvNu50.net
URLリンク(superuser.com)
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:
URLリンク(support.microsoft.com)
バグなんてもんじゃねえ
357:デフォルトの名無しさん
21/01/28 21:31:23.39 ABoKcn6c0.net
>>351
参照設定の中に入ってるのは普通に動かせるし、
WindowsAPIとUIAutomationとSendKeysがあるから、
マウスとキーボードで動かせるようなものなら大抵。
極端な例を言うと、VBAで仮想のファミコン(エミュ)を作ってマリオ動かす人もいる。
358:デフォルトの名無しさん
21/01/28 21:34:15.56 46r/uxOM0.net
>>348
「一度死んでみた」
359:デフォルトの名無しさん
21/01/28 21:37:00.50 ABoKcn6c0.net
って書いてて思ったんだけど、
IRモジュール使ってVBAでテレビとかエアコン動かせる人いる?
360:デフォルトの名無しさん
21/01/28 21:50:11.88 O9WqV6fA0.net
俺さ、VBAのソース書いてて
インテリセンスが糞だと思ってたけど
上には上があるんだなぁ
今ClassicAspとかいう昔の組んでるんだけど
HTMLとJavaScriptとVBScriptで出来てて
テキスト編集ツール使って
テキストファイルで作ってる
もちろんインテリセンスなんて全く効かない
そうなると一番怖いのが文法エラー
VBAなんかだと一発で分かるけど
最初っからコンパイル自体されないので
どこでエラーになっているか
全く分からない
361:デフォルトの名無しさん
21/01/28 21:57:01.68 SI9VK8hs0.net
ブラウザの開発ツールの使い方を知らないだけでは
362:デフォルトの名無しさん
21/01/28 21:58:09.32 8thmnp2a0.net
>>356
vbaでエミュってエミュをvbaで起動してるってことではなく?
何をどうやったら作れるのか不思議
vbaでIoTの組み込みや操作も可能なのだろうかー
363:デフォルトの名無しさん
21/01/28 22:02:50.14 TxA55uF+M.net
元々仕事でなんとなしに触らざるを得なくなってコピペやらその場限りのググりで生きながらえてきたんだけどちゃんと筋道立てて1から勉強したいというときに適した本やサイトはありますか?
364:デフォルトの名無しさん
21/01/28 22:04:15.85 8m13k+420.net
本はある
サイトはない
365:デフォルトの名無しさん
21/01/28 22:04:36.53 8m13k+420.net
本も当然、1冊では終わらん
入門編から順に買うことになる
366:デフォルトの名無しさん
21/01/28 22:05:55.11 46r/uxOM0.net
>>359
馬鹿は黙っていればいいのに
367:デフォルトの名無しさん
21/01/28 22:49:59.34 TfrdJEz20.net
>>362
慣れてきて半人前くらいになってきたな、と思うならこの本
入門レベルでは決して足りない実務に必須のスキルとは ExcelVBA 実戦のための技術
368:デフォルトの名無しさん
21/01/28 23:07:43.56 ABoKcn6c0.net
>>361
VBAでエミュ。
今は消えてるけど、以前ここにワードで動かしてる動画があった。
URLリンク(www.nicogame.info)
UPされた当時は実機並みのスピードは出てなかったけど、
今のハイスペックPCで動かしたらどうだったか・・。
369:デフォルトの名無しさん
21/01/28 23:11:02.95 8thmnp2a0.net
>>367
謎技術
370:デフォルトの名無しさん
21/01/29 00:41:18.26 R2RLQXG+0.net
VBAって当たり前だろうけどエクセルの基本的な知識がないと使えないよね?
エクセル全然知らないから大変だな…
371:デフォルトの名無しさん
21/01/29 00:42:02.94 SG5MocSx0.net
それじゃ役に立てる場所がないじゃん
実践で使わないと上達しないぞ
372:デフォルトの名無しさん
21/01/29 00:49:19.50 SG5MocSx0.net
未来の開拓のため!つっても普通
「よし、エクセルを覚えるぞ」からだろそれは…
PCにエクセルをインストールしてエクセル入門の本を買うところからだな
書式とか関数とかピボットとかスイスイできるほどに覚えてからだなVBAは
でないとプログラムの意味も理解できない
373:デフォルトの名無しさん
21/01/29 01:35:07.55 R2RLQXG+0.net
>>371
助かります!
374:デフォルトの名無しさん
21/01/29 02:08:08.30 R2RLQXG+0.net
エクセル初歩から覚えるなら絶対買っとけ!って書籍やサイトはありますか?
375:デフォルトの名無しさん
21/01/29 02:35:09.20 SG5MocSx0.net
「絶対」は無い。
まあ「絶対ではないがまったり普通に」、
FOM出版のよくわかるシリーズでいいのでは。
当然最初は基礎編ね。
スレ違いだからこれ以上は然るべきところで聞くのがいいと思う。
376:デフォルトの名無しさん
21/01/29 03:41:44.14 IWwHfNXwH.net
>>373
入門サイト
URLリンク(excel-ubara.com)
377:デフォルトの名無しさん
21/01/29 03:58:52.37 R2RLQXG+0.net
>>374
>>375
ありがとう!!
とりあえず神髄を参考にしていきます
378:デフォルトの名無しさん
21/01/29 08:15:50.80 Xkyf+iIu0.net
>>369
いや、Excelの知識無くてもVBだけでExcelを動かしてる人いますぜ
その人当然ワークシート関数をろくに知らない
379:デフォルトの名無しさん
21/01/29 09:35:52.52 Llo2P1qs0.net
昭和の頃は、Excel講座に通うサラリーマンはバカにされてたけど、同時にvi使える人が達人として尊敬されてた。
どう考えてもテキストエディタより表計算のほうが技能必要だけど。
380:デフォルトの名無しさん
21/01/29 09:38:10.99 Llo2P1qs0.net
日本の成長に脅威したCIAが、たいていの問題に対して使える優秀な製品を貶し、使いどころの限られる古いテキストエディタユーザーを神扱いしたのではないか?
381:デフォルトの名無しさん
21/01/29 09:40:46.74 higCsMc/M.net
そもそもVBAは最後の手段であって、それを活用することは決して褒められたものじゃない
ワークシートの機能で簡単にできることを知らずにシコシコ馬鹿みたいにVBA書いてるアホは多い
382:デフォルトの名無しさん
21/01/29 09:44:43.17 Llo2P1qs0.net
結果、CIAの思惑通り、標準的な日本人はviを使いこなせるが、Excelを使いこなす日本人は少ない。
Excelを使いこなせた方が絶対便利なのに。
383:デフォルトの名無しさん
21/01/29 09:55:51.98 eIG6sa+UM.net
テキストエディタはC++やJava などでプログラム開発するためのただの道具だけどな
むしろ本格的なプログラム組むならVBAは汎用性に欠ける
384:デフォルトの名無しさん
21/01/29 10:15:15.81 9nrwkhnr0.net
>>378
昭和にExcelあったっけ?
385:デフォルトの名無しさん
21/01/29 10:17:07.73 9nrwkhnr0.net
最近はSheetというかExcelの外でのExcelVBAの活用方法を知りたい
386:デフォルトの名無しさん
21/01/29 10:28:32.08 Hw3psapAM.net
Excelと他のアプリを連携するにしてもある程度の規模になるとVBAではなくてOffice add-ins(JavaScriptまたはTypeScript)やVSTO(C#)の利用をMicrosoftは推進してる
あくまでVBAはMS Officeのシステムの枠内で処理の自動化を実施するための道具
387:デフォルトの名無しさん
21/01/29 11:18:05.10 smfBIAno0.net
>>383
Excel 自体は存在したけど日本語版じゃないしMac用だからリーマンが講座に通うとかはありえんだろうな
アメリカのリーマンかも知れんがw
388:デフォルトの名無しさん
21/01/29 11:33:25.67 IWwHfNXwH.net
一番最初にMac版が発売されたのは昭和60年9月、ただしこの時点ではマクロは使えなかった
Windows版は昭和62年10月発売で、ここからマクロ機能が搭載された
この時代だと、viが使える人は別に尊敬されてない
そもそもほとんど知られてなかったんだから、使える人がすごいとか判断すらできなかった
389:デフォルトの名無しさん
21/01/29 13:42:22.04 Xkyf+iIu0.net
知人がYouTubeで表計算なりVBを勉強したいと言っているが、同志達からみてどのチャンネルがおつつめ?
金子?ユースフル?たてばやし??
自分、YouTubeであまりExcelの参考にはしないから誰が優秀か全然わからん
390:デフォルトの名無しさん
21/01/29 13:44:47.29 IzzhGfbbM.net
つべを見ないのが1番参考になる説
391:デフォルトの名無しさん
21/01/29 13:46:17.88 Xkyf+iIu0.net
知人いわく、金子ていうあんちゃんがやたら人気あると聞いてさ
でもプロではないと思うから自分なら観ない
392:デフォルトの名無しさん
21/01/29 15:03:44.68 XKqQMMzPd.net
お前ら化石みたい頭してそうだもんな、youtuberとか頑なに受け入れられないんだろうな
俺は金子見て勉強してるよ
393:デフォルトの名無しさん
21/01/29 15:07:49.71 hZ93xN6Od.net
Exportasfixedformatメソッドでpdfを出力するとき、そのファイル名にセルの値を参照してるのですが
セルの値が改行されているとエラーが出ます。
エラーを出さず改行を無視してファイル名をつけたいのですが、どうすればよいでしょうか?
394:デフォルトの名無しさん
21/01/29 16:22:00.18 SG5MocSx0.net
コード見せてよ
395:デフォルトの名無しさん
21/01/29 16:32:12.51 wsDc5NzC0.net
改行の記号忘れたけど
あれをReplaceで消せばいいだけじゃね
396:デフォルトの名無しさん
21/01/29 16:36:09.23 SG5MocSx0.net
vbCrとvbLfとvbNewLineを空文字化すればいけるかな?
397:デフォルトの名無しさん
21/01/29 16:52:50.17 ur5sUiDWd.net
s = Replace(Replace(Replace(Replace(s, vbCr, ""), vbLf, ""), vbCrLf, ""), vbNewLine, "")
398:デフォルトの名無しさん
21/01/29 17:07:40.77 8cihH0fua.net
vbNewLine は vbCr と vbLf の組み合わせか、いずれか一方だから、vbCr と vbLf だけでもいいかも
399:397
21/01/29 17:08:58.02 8cihH0fua.net
そんな定義はないか…
400:デフォルトの名無しさん
21/01/29 17:32:34.00 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:デフォルトの名無しさん
21/01/29 19:31:25.44 Xkyf+iIu0.net
田中派と金子派がハッキリ別れてるわ自分の界隈は
402:デフォルトの名無しさん
21/01/29 20:44:38.50 Wez0GYRkM.net
他のダメ文字は来ないことをお祈りか
403:デフォルトの名無しさん
21/01/29 21:10:33.96 IWwHfNXwH.net
youtubeができる前に基本は覚えたから今さら見る気になれないなあ
だからどっちがどうとかも興味ない
404:デフォルトの名無しさん
21/01/29 21:43:57.23 MBltpUk80.net
>>399
全部空文字にするなら、置換する元のリストをArrayでくくって、lbound(配列)~ubound(配列)でその配列の中身ループさせればいいだけじゃん
それ可読性悪すぎ
405:デフォルトの名無しさん
21/01/29 21:55:58.53 IWwHfNXwH.net
要素がもっと多いと配列にした方がメンテ性は良くなりそうだけど、4つだと微妙だなあ
個人の好みで片付けたくなる
For Each x In Array(vbCr, vbLf, vbCrLf, vbNewLine)
s = Replace(s, x, "")
Next
406:デフォルトの名無しさん
21/01/29 21:59:33.79 IWwHfNXwH.net
あとForで回すと微妙に遅くなるんで、関数化(ブラックボックス化)して大量のデータを処理するなら1本の式にまとめた方がいいかもしれない
407:デフォルトの名無しさん
21/01/29 22:14:22.45 SG5MocSx0.net
つまり403は考え足らずだったと
408:デフォルトの名無しさん
21/01/29 23:07:49.79 GBOzgJJf0.net
CreateObject("VBScript.RegExp")で探すのも大差ない?
409:デフォルトの名無しさん
21/01/30 00:02:38.07 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:デフォルトの名無しさん
21/01/30 00:03:27.01 U1XssVyb0.net
間違えました
w、Wsは不用です。
↓
w、Wsはシートです。
411:デフォルトの名無しさん
21/01/30 01:01:10.51 5ChT/CTU0.net
>>403
>>404
なるほど勉強になるわ
いろんな書き方があるからプログラムは面白いな
スマホで打つの面倒くさいからコピペしたけど自分ならReplaceを4行に分けて
412:一個ずつ処理してたわ
413:デフォルトの名無しさん
21/01/30 01:07:22.27 6QDP6TPLH.net
>>408
Else
Ws.Cells(gyo, "A").NumberFormatLocal = "@"
Ws.Cells(gyo, "A") = Right(w.Cells(1, "B"), 7)
End If
414:デフォルトの名無しさん
21/01/30 02:17:52.72 O2YJs/tfd.net
>>336
言っとくが、本気にするなよw
熟練者はネットも本も見るぞ。
ま、本に関してはVBAの本は見ないかも。
415:デフォルトの名無しさん
21/01/30 02:23:06.62 O2YJs/tfd.net
>>385
???
そうか?
VSTO廃れてるように見えるが。
情報少ないし。
416:デフォルトの名無しさん
21/01/30 02:42:40.27 fm9PSZiO0.net
>>408
単にWsのA列の表示形式が文字列じゃないだけじゃね
417:デフォルトの名無しさん
21/01/30 02:48:37.26 qXiZMF+3d.net
>>392
これ面白そうだったから調べてみた。
s = worksheetfunction.clean(s)
でいけるっぽい
418:デフォルトの名無しさん
21/01/30 07:14:33.38 1M+OYc940.net
VBAがそのうち廃止されると噂聞くけど無くなったらExcelじゃなくて良いね
キングとかジャストの安い互換ソフトで十分
それとPython
419:デフォルトの名無しさん
21/01/30 07:28:22.98 O0XirISQ0.net
そんなのきいたこともない
420:デフォルトの名無しさん
21/01/30 07:31:09.77 inFBwlEk0.net
上にExcel使いこなしてる奴少ないとあるが、事務歴長いおばちゃんとか操作長けてるイメージあるけどどうなの??
421:デフォルトの名無しさん
21/01/30 07:45:37.30 JU3c6HAP0.net
>>397-398
> vbNewLine は vbCr と vbLf の組み合わせか、いずれか一方だから、vbCr と vbLf だけでもいいかも
それでいいと思う
URLリンク(docs.microsoft.com)
422:デフォルトの名無しさん
21/01/30 08:19:24.57 5ChT/CTU0.net
>>415
MS様の関数を使うのが一番きれいか
423:デフォルトの名無しさん
21/01/30 08:27:30.21 jJ/MoYJX0.net
>>418
テンキーだけ速い。
424:デフォルトの名無しさん
21/01/30 08:28:40.37 fCdLLOZj0.net
ワークシートの関数とか基本的なものしか知らないな
知ってると便利そうね
425:デフォルトの名無しさん
21/01/30 08:43:21.65 BrDW2qLKd.net
>>418
小企業で事務が2人ぐらいのとこだと、速いけどたいがい変な自己流
いわゆるExcel方眼紙を素早く作って定型文書を作ってしまうとかそんなイメージ
もちろんよく勉強してる人もいるが
426:デフォルトの名無しさん
21/01/30 08:54:12.58 BrDW2qLKd.net
[A2] = [Clean(A1)]
427:デフォルトの名無しさん
21/01/30 09:29:14.83 inFBwlEk0.net
テンキー速いのは良いね
電卓も得意そうだし
方眼紙はアカンど、あれ考えた人天才かファホどちらかだな
そういうおば様が引き継ぎにくいシートを大量生産しとるんだねうちみたいに
428:デフォルトの名無しさん
21/01/30 10:10:18.97 1M+OYc940.net
VBAはいつまで使えるんだろう?
あと15年は大丈夫かね
429:397
21/01/30 10:35:24.24 rbovmPt/a.net
おー、ありがとございまーす‼︎
430:397
21/01/30 10:37:11.90 rbovmPt/a.net
>>419
おー、ありがとうございます‼︎
431:デフォルトの名無しさん
21/01/30 10:41:58.65 b7Gs8Wa80.net
>>408
です
>>411
>>414
ありがとうございます、おっしゃる通り数字扱いになっているのだと思います。
>>411さんの方法でやってみます
432:デフォルトの名無しさん
21/01/30 11:30:40.53 1M+OYc940.net
最近、Excel + Pythonとか耳にするけどVBAより何が良いんだろー?
433:デフォルトの名無しさん
21/01/30 11:46:57.12 O0XirISQ0.net
ExcelVBAのひどさは文法よりライブラリのひどさにある
言語だけ変えてもあんまり解決しない
丸々置き換えた外部ライブラリならもっと楽にプログラムできるかもしれない
434:デフォルトの名無しさん
21/01/30 12:27:45.49 1M+OYc940.net
そうなのかー
435:デフォルトの名無しさん
21/01/30 13:08:59.54 Jfm3X56+M.net
Pythonみたいな外部環境使う時は、エクセルを操作って言うより作成する時が多そう
入出力ともにエクセルならVBAの方が手っ取り早いでしょ
436:デフォルトの名無しさん
21/01/30 13:24:52.13 Au3KeWLZM.net
というかVBA使ってるのは他に開発ツールが無いからなんだよ
Pythonインストールできる環境ならそもそもVBAなんか使ってない
437:デフォルトの名無しさん
21/01/30 13:37:40.94 fCdLLOZj0.net
最近VBA描けるようになって嬉しいけどここ見てると終わってる言語みたいだな...
438:デフォルトの名無しさん
21/01/30 13:44:55.44 inFBwlEk0.net
古い言語だからでは?
昭和の定年ジジババがどや顔で昔からプログラミングやっていたと若者にマウント取ってくるのは大抵VBAが大半
439:デフォルトの名無しさん
21/01/30 13:51:30.45 Jfm3X56+M.net
終わってる言語だけど、代わりに仕様変更がない安心感はある
諸悪の根源は仕事の効率化って名目でVBA押し売りするサイトやら講師やらだな
はよくたばれ
440:デフォルトの名無しさん
21/01/30 14:05:31.86 xS3gwMFJ0.net
今VBA押してるか?
Pythonばかりステマされてる気がする
441:デフォルトの名無しさん
21/01/30 14:46:55.21 Au3KeWLZM.net
>>435
今でも使われてるしVBAしか開発環境のない職場も多いし、
いつも手作業で気合いで乗り切るって人より遥かにマシだから引き続き学習進めていいと思うよ
ただ余裕があれば自宅でPythonとかHTML+JavaScript辺り触っとくといいかも
442:デフォルトの名無しさん
21/01/30 16:29:08.79 Jfm3X56+M.net
Vbaしかないってどんな状況だよ
443:デフォルトの名無しさん
21/01/30 16:33:11.52 rDRgl3OZ0.net
よくあるだろ。
オフィス系を主体に普通に手作業メインで事務やってるとこは。
444:デフォルトの名無しさん
21/01/30 16:33:53.70 c0t4Oketd.net
>>434
Pythonインストールできる会社って少ないの?
なにか引っかかるの?
445:デフォルトの名無しさん
21/01/30 16:36:47.91 rDRgl3OZ0.net
余計なものはインストールしちゃいけないことになってる
446:デフォルトの名無しさん
21/01/30 16:59:35.87 SAK/nUhP0.net
良かれと思って勝手にやって怒られても嫌だしな
447:デフォルトの名無しさん
21/01/30 17:00:42.77 KmRaLG0X0.net
規約で使っていいツールが決まってる
448:デフォルトの名無しさん
21/01/30 17:06:41.65 Jfm3X56+M.net
何で勝手にインストールするのが前提なんだよ
上に相談すればいいじゃん
それすら出来ない融通の効かない会社なら、そもそもマクロなんか絶対許さないだろ
449:デフォルトの名無しさん
21/01/30 17:13:45.33 Rr8OfpXod.net
ウチの会社は全く融通きかない
Alt+F11で上司の上司から呼び出し食らったの思い出しましたわ
450:デフォルトの名無しさん
21/01/30 17:17:25.24 rDRgl3OZ0.net
>>446
上に相談で通るって、どんだけ小さい企業を想定してるんだよと
451:デフォルトの名無しさん
21/01/30 17:24:56.08 SAK/nUhP0.net
>>446
お前の知ってる会社が世の中のすべてじゃないってことだよ
452:デフォルトの名無しさん
21/01/30 17:24:58.39 Jfm3X56+M.net
上に相談するのに企業規模関係なくね?
453:デフォルトの名無しさん
21/01/30 17:30:12.43 Jfm3X56+M.net
まぁどうせ無理だろって思い込みでやってるから、
そういう状況なんだろうな
行動しないかやっても中途半端なくせに上司や会社への愚痴は一人前
454:デフォルトの名無しさん
21/01/30 17:43:22.21 SAK/nUhP0.net
そうやって思い込みで批判してるお前も思い込み仲間だな
455:デフォルトの名無しさん
21/01/30 17:47:12.97 6QDP6TPLH.net
相談するかどうかには規模は関係ない
許可されるかどうかも規模は関係ないかな
相談のしやすさだけは違うかも
456:デフォルトの名無しさん
21/01/30 18:58:14.37 vCh93ej0M.net
会社PCでPython+Excelなんて非現実的すぎるよな
相談しても「余計なことしなくていい」で終わり
でもExcelは最初から入ってるからVBAなら無問題
未だに使われてるのはそれが最大の理由
一時期「ExcelでPython使えるようになる」みたいな話があって期待してたけど立ち消えで残念
457:デフォルトの名無しさん
21/01/30 19:17:07.76 inFBwlEk0.net
そもそもExcel使いの中でのVB人口が少ないわな
職場によっては白い目で見られる事あるみたいだし。。。
458:デフォルトの名無しさん
21/01/30 19:23:25.71 rDRgl3OZ0.net
>>454
うちと同じ
厳格で神経質な大企業だわ
459:デフォルトの名無しさん
21/01/30 19:57:40.31 O0XirISQ0.net
python入ってたらpip installぐらいさせてくれるだろ
460:デフォルトの名無しさん
21/01/30 20:20:54.08 JU3c6HAP0.net
>>434
Excel関係ないならPowerShellでいいだろ
気合いるけどC#, VB.netだって使えるし
461:デフォルトの名無しさん
21/01/30 20:25:06.96 VxE/916e0.net
>>454
えっ、ExcelにPython搭載の話は無くなったの?
462:デフォルトの名無しさん
21/01/30 20:38:13.29 j+igCUSpM.net
>>459
ExcelにPythonが搭載?その後
URLリンク(qiita.com)
463:デフォルトの名無しさん
21/01/30 21:00:39.22 aByJMjeF0.net
>>458
PowerShellは軽く調べたことあるけどそんなに便利なの?
C#とかVB.netってのは追加インストールなしでできる?
今のところうちの会社で出来そうな言語は↓
・VBA(Office)
・VBS(WSH)
・Jscript(WSH)
・JavaScript(webブラウザ)
・PowerShell
464:デフォルトの名無しさん
21/01/30 21:22:07.64 xS3gwMFJ0.net
VBAで簡単なアプリ開発ってできるの?
tefuくんの体脂肪測定器みたいな
465:デフォルトの名無しさん
21/01/30 21:22:48.91 O0XirISQ0.net
いくら便利でも所詮はシェルだし
体系がわかりやすくなっても
いったん古い体系になじんでたら覚える手間増えるだけだし
劇的に安全になったり間違いが減ったり作業が減るわけじゃない
今から入る人以外やる人いるのか?
466:デフォルトの名無しさん
21/01/30 21:23:28.18 aByJMjeF0.net
VBAは極めれば当然事務系のシステムはもちろんアクションゲームやシューディングゲームも作れる
開発効率は知らん
467:デフォルトの名無しさん
21/01/30 21:35:23.25 xS3gwMFJ0.net
>>464
簡単なアプリ作るのに初心者から何年ぐらいかかるな
468:デフォルトの名無しさん
21/01/30 21:40:45.18 aByJMjeF0.net
>>465
ジャンルは?
469:デフォルトの名無しさん
21/01/30 21:41:39.22 aByJMjeF0.net
ああ、上に書いてあるようなやつか
人によるけど半年~1年くらいじゃね?
470:デフォルトの名無しさん
21/01/30 21:59:47.48 xS3gwMFJ0.net
>>467
tefu君たいしてすごくないな
ありがとう!
471:デフォルトの名無しさん
21/01/30 22:54:30.67 inFBwlEk0.net
昭和の頃からExcelできる=パソコンできる
パソコンできる=Excel Wordできる
この固定観念は不変だいまだに
何故なんだや?
472:デフォルトの名無しさん
21/01/30 23:08:10.45 O0XirISQ0.net
だれの概念だ
おれはしらんぞ
473:デフォルトの名無しさん
21/01/30 23:08:37.64 XeNTB87Q0.net
固定観念ではなく社会に出てPC使う上で一番必要になるから
474:デフォルトの名無しさん
21/01/30 23:14:56.21 xzjRtN8LM.net
昭和だと8bitパソコンの全盛期か?
475:デフォルトの名無しさん
21/01/31 01:25:22.99 SqzzHClod.net
>>460
えっ!Excelにjavascript搭載?!
476:デフォルトの名無しさん
21/01/31 03:01:40.77 Y3xOrDkq0.net
そもそもアプリがEXCEL何だから何が搭載されようがパフォは大差無いだろうな
それならブックが超軽いとかの方が恩恵あるわ
477:デフォルトの名無しさん
21/01/31 10:40:24.97 /4jghnKY0.net
昭和だからMS-DOSって奴か
定年して10年位の近所の爺がやたらExcelの話しだけは詳しかったわ
平成初期って今みたいにpcが普及していたイメージ無いのだがね
478:デフォルトの名無しさん
21/01/31 10:44:54.99 LH9Tecev0.net
平成初期は家庭の普及は少ないかもしれないが学校でPCの授業はある時代
479:デフォルトの名無しさん
21/01/31 11:12:38.97 eXchLs/k0.net
平成初期頃ならPC-9801+MS-DOS上で一太郎とロータス123の時代
480:デフォルトの名無しさん
21/01/31 12:51:12.93 LqdlwBTz0.net
FileSystemObjectのOpenTextFileで開いたファイルのポインタを最初の行に戻す方法ってありますか?
ADOのMoveFirstメソッドみたいな感じの。
481:デフォルトの名無しさん
21/01/31 13:05:56.87 tZ/FxqNKd.net
Windows版Excel(もちろん英語版)が最初に発売されたのは一応昭和時代の終わり頃だよ
日本で使ってた人はほぼいなかったと思うけど
使い物になる日本語版が登場したのは平成5年の秋
482:デフォルトの名無しさん
21/01/31 14:29:00.06 BqVAUrnsx.net
Excel 95か97は持ってたはずだが…どこいったかな
Excel2000は現役?で使ってたりするw
現代のPCで動かすと爆速だから
483:デフォルトの名無しさん
21/01/31 15:54:08.87 /4jghnKY0.net
2000て今のパソコンで動くのか知らんかった
サンクス!
484:デフォルトの名無しさん
21/01/31 15:56:11.00 1T3G+5lu0.net
3.1も動くんじゃね?
485:デフォルトの名無しさん
21/01/31 16:01:12.88 xa1uSfuZH.net
Excel2000とWindows2000を勘違い
486:デフォルトの名無しさん
21/01/31 19:37:03.65 U4PZxrG+d.net
>>435
色んな言語やって適材適所。
VBAの場合、特殊な環境なのでVBAが有利だけど出来ないことも結構ある。
487:デフォルトの名無しさん
21/01/31 19:38:49.07 U4PZxrG+d.net
>>451
足らないなら作れば良いってのもある。
バイナリエディタぐらいなら2時間もあれば作れるだろ。
488:デフォルトの名無しさん
21/01/31 19:41:00.82 MeuEia/rM.net
足らないなら
足りないなら
489:デフォルトの名無しさん
21/01/31 19:42:32.36 U4PZxrG+d.net
>>461
問題はさ、結局VBAから呼び出す形じゃピタゴラスイッチみたいになるし、外部からExcel操作するようなのは、元々VBAでやる必要のない処理なので競合にならないということ。
490:デフォルトの名無しさん
21/01/31 20:16:56.70 7WfxADLN0.net
ワード97のイースターエッグでピンボールが遊べた重いで
エクセルは迷路だっけか
491:デフォルトの名無しさん
21/01/31 21:05:00.18 zGey4MUp0.net
冴子先生
492:デフォルトの名無しさん
21/01/31 21:39:17.09 xa1uSfuZH.net
カイル
493:デフォルトの名無しさん
21/02/01 10:35:57.85 vqEWjed4a.net
64bit対応をしてるんですが、素人なのでポインタ/ハンドルとそれ以外の区別が難しいです
GetInputStateはlongptrではなくlongで良い(実際どちらでも動くことは動きました)と思うのですが、合ってるでしょうか?
Private Declare PtrSafe Function GetInputState Lib “USER32” () As Long
(そもそも、パラメータや引数がないのに、何故型宣言が必要なのかからしてよく分からないのですが…)
494:デフォルトの名無しさん
21/02/01 13:32:29.40 0pAIWcaIM.net
URLリンク(docs.microsoft.com)
検索しろよ
BOOLだからLONGでいいんじゃねえの?
495:デフォルトの名無しさん
21/02/01 15:05:09.75 cziAKMq/0.net
>>491
そんなことがわからない馬鹿はAPI使うなよ
496:デフォルトの名無しさん
21/02/01 16:35:31.74 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:デフォルトの名無しさん
21/02/01 17:21:35.68 90ziZ1xl0.net
Debug.PrintじゃなくMsgBoxにしても無理?
498:デフォルトの名無しさん
21/02/01 17:26:28.07 4U/YDNuw0.net
>>495
MsgBoxにしてみましたが、変わらずブランクのままでした…
499:デフォルトの名無しさん
21/02/01 17:33:05.91 90ziZ1xl0.net
CodeNameプロパティは
VBE閉じてると取得できないみたいね
URLリンク(social.msdn.microsoft.com)
500:デフォルトの名無しさん
21/02/01 17:40:51.41 vqEWjed4a.net
>>492
>>493
ありがとうございました
他人のコードを意味も分からず流用してました
戻り値なんですね
501:デフォルトの名無しさん
21/02/01 17:52:09.95 GaUVwnAZH.net
>>497
これまじかー
イベントを起動するシート判定に使おうと思ってたから痛いな
配布する前でよかったのが救いか
502:デフォルトの名無しさん
21/02/01 17:58:19.66 s7QwQuf00.net
Nameは使える
503:デフォルトの名無しさん
21/02/01 18:31:44.12 4U/YDNuw0.net
>>497
ありがとうございます!
おかげさまで解決しました!
ものによってはVBE閉じていると取得できないということもあるんですね…勉強になりました…
504:デフォルトの名無しさん
21/02/01 19:44:46.16 x4MWOITLH.net
497は既存のオブジェクトは大丈夫みたいだな
良かった
505:デフォルトの名無しさん
21/02/01 23:01:45.15 neAX3K2a0.net
VBAでIoT、たとえば防犯カメラを特定の時間稼働させることできる?
506:デフォルトの名無しさん
21/02/01 23:03:50.03 cgpbZmzy0.net
知らんけど何故VBAでやるの?
507:デフォルトの名無しさん
21/02/01 23:04:15.16 neAX3K2a0.net
もしくはラズベリーパイ動かせたりする?
508:デフォルトの名無しさん
21/02/01 23:04:51.14 neAX3K2a0.net
>>504
できるのかなと思て
ただの興味本位
509:デフォルトの名無しさん
21/02/01 23:11:41.22 KRwxYz520.net
できない
510:デフォルトの名無しさん
21/02/02 01:35:01.99 eRozloyAH.net
もちろんできるが
511:デフォルトの名無しさん
21/02/02 02:35:02.20 K9rz1pjI0.net
VBAなんか使わなくてもできるだろ
512:デフォルトの名無しさん
21/02/02 03:35:20.04 CQc47MX20.net
VBA以外のもんでも使ってりゃいいよね
513:デフォルトの名無しさん
21/02/02 05:46:24.43 rAxQwi5Z0.net
こんなこともわからない馬鹿には無理
514:デフォルトの名無しさん
21/02/02 07:45:22.80 k1bhpTE6x.net
複数のユーザーフォームをボタンと紐付された関数ごと
別のフォームのマルチページの一つのページとして統合したいんだけど
どうやったらいい?
コントロールのコピーしたら関数まっさらになってしまう
515:デフォルトの名無しさん
21/02/02 08:44:36.43 xrgeUBRvM.net
コードもコピペしてオブジェクト名整えれば?
516:デフォルトの名無しさん
21/02/02 09:39:10.72 k1bhpTE6x.net
すまん
問題はオブジェクト名にあった
コントロールをコピーして貼り付けるとコピー元とは無関係に
左上から連番でオブジェクト名が新規に付けられてしまう
それで元のコードとの相関性がグチャグチャに
他のフォームからコピーするとオブジェクト名の重複が発生するから
しょうがないとは思うが…
複数フォームを一つのフォーム内ページで管理出来たらコンパクトでいいと思ったが甘かったか
517:デフォルトの名無しさん
21/02/02 09:52:43.44 k1bhpTE6x.net
ボタンのオブジェクト名をマクロで変更するにはどうしたらよいかわかる?
518:デフォルトの名無しさん
21/02/02 12:07:20.51 K9rz1pjI0.net
素人が作るからそいういう糞システムになる
519:デフォルトの名無しさん
21/02/02 13:21:01.13 1bf+ts0k0.net
え?
まさかみんなプロなのここ??
520:デフォルトの名無しさん
21/02/02 13:30:17.30 k1bhpTE6x.net
仕事で使っちゃあいるが
ほぼ趣味だな
一度も仕事としてコーディングしたことはないな
521:デフォルトの名無しさん
21/02/02 14:20:46.66 CQc47MX20.net
言葉遊びどーでもいい
522:デフォルトの名無しさん
21/02/02 20:44:18.05 gUgxJ4hN0.net
VBAで何か生活の役にたつアイデアある?
家計簿しかり、体脂肪計しかり。他には?
523:デフォルトの名無しさん
21/02/02 20:55:15.73 9gegCBvb0.net
アンケートならもっと人のいるところでやりましょう
524:デフォルトの名無しさん
21/02/02 21:54:41.99 6HeFUyi4M.net
扱いたいデータ次第でしょ
スマートメーターとか
デジタル温湿度計とか
インプットのデータが多様であればあるほど
得られる成果の種類も増えるというもの
525:デフォルトの名無しさん
21/02/02 22:01:58.54 6HeFUyi4M.net
素人質問
VBSで正規表現の(肯|否)定(先|後)読みが出来ないっぽいんだけど
気のせい?
526:デフォルトの名無しさん
21/02/02 22:07:07.66 /jXNxNj70.net
VBAを生活に役立てるとかいう発想が的外れすぎる
Officeでやりたいことを実現する為のものってことすら理解してない
527:デフォルトの名無しさん
21/02/02 22:11:21.43 CQc47MX20.net
そんなの正規表現じゃないからできないよ
もちろん一番肝心なVBAにとってのね
528:デフォルトの名無しさん
21/02/02 22:11:57.41 CQc47MX20.net
>>524
いまいち理屈になってないな
529:デフォルトの名無しさん
21/02/02 22:26:20.10 aIKF9fP10.net
俺はVBAで彼女できたし宝くじも当たった
死んだばあちゃんまで生き返って超ハッピーだわ
530:デフォルトの名無しさん
21/02/02 22:27:38.52 CQc47MX20.net
で、オフィス365で結婚できたんだろ?w
531:デフォルトの名無しさん
21/02/02 22:46:41.30 gUgxJ4hN0.net
競馬当てるアプリ作れないかなあ
532:デフォルトの名無しさん
21/02/02 22:59:13.66 IsWRFffm0.net
まず、「当てるアルゴリズム」を考えなきゃだなw