19/02/16 10:00:10.02 uFHexw8O0.net
スマホで半角カナ小文字の入力は、俺のXperiaの場合だと「la」と入力すると全角小文字の「ぁ」になって、変換を押すと候補に半角「ァ」が出てくる
201:デフォルトの名無しさん
19/02/16 10:07:20.68 uFHexw8O0.net
フリック入力ならキーパッドの「ま」の下の「小」をタップすると小文字になって、候補に半角も自動的に出てくる
202:デフォルトの名無しさん
19/02/16 13:35:38.12 V3lev6Wl0.net
>>175
1) Range("A1:A4") = WorksheetFunction.Transpose(Split("名前、住所、性別、郵便番号", "、"))
2) Range("A1:A4") = WorksheetFunction.Transpose(Array("名前", "住所", "性別", "郵便番号"))
3) Range("A1:A4") = [{"名前";"住所";"性別";"郵便番号"}]
203:デフォルトの名無しさん
19/02/16 14:00:48.72 i29F+S9hM.net
VBAの2次元配列って1次元配列として使えないのね。不便。
204:デフォルトの名無しさん
19/02/16 14:26:02.22 Y5C6RkaG0.net
二次元配列は何が入ってるか分かりにくいしネストも増えやすいから構造体かクラスを使う
205:デフォルトの名無しさん
19/02/16 14:36:39.42 eWrDkcRxM.net
>>198
割り切ってジャグ配列をメインに使えばいい
Rangeはしょうがないけど
206:デフォルトの名無しさん
19/02/16 15:38:49.30 XgEm9HUa0.net
>>199
XLシートが二次元の表なんだから難しくないだろ。
三次元なら立体を思い浮かべればいい。四次元になると時間をイメージかな。そこまでやったことないからわからん。
三次元までのネストの深さは気にならないな… ifとかで増えるにしても。増えすぎるなら内部を切り出すかな。
まあ、仕様によってどう作るかはいろいろだけど。
207:デフォルトの名無しさん
19/02/16 16:03:55.03 kXl7LE8Fx.net
n次元 = n階層の木構造とイメージするのが単純で良いと思うが
208:デフォルトの名無しさん
19/02/16 16:14:59.54 3bJEG0FOH.net
>>201
難しくないのにわからんって馬鹿?
209:デフォルトの名無しさん
19/02/16 16:41:41.01 eWrDkcRxM.net
n次元より配列の配列の...の方が再帰的に扱いやすい
210:デフォルトの名無しさん
19/02/16 17:53:27.66 q1DAaOKG0.net
>>203
日本語不自由?
難しくないのは二次元
わからんのは四次元
211:デフォルトの名無しさん
19/02/16 22:42:47.76 0In5hf0F0.net
モジュールで
Dim arr() As String
Dim aaa As String
ReDim arr(2)
arr = ThisWorkbook.arr
aaa = arr(0)
ThisWorkbookに下記を設定
Public Function arr() As String()
Dim arra(2) As String
arra(0) = "日本"
arra(1) = "米国"
End Function
Thisworkbookの配列を呼び出したいんですがどこが間違っていますか?
212:デフォルトの名無しさん
19/02/16 23:01:11.68 V3lev6Wl0.net
>>206
arr = arra
End Function
213:デフォルトの名無しさん
19/02/16 23:03:14.34 CD9VXZwW0.net
エラーメッセージ何よ。
214:デフォルトの名無しさん
19/02/16 23:06:17.40 0In5hf0F0.net
>>208
インデックスが有効範囲にありません
215:デフォルトの名無しさん
19/02/16 23:10:54.03 CD9VXZwW0.net
>>209
ああ、よくある、結局原因がよくわからないやつね。
試したら、>>207が正解だったわ。
面白いな。Thisworkbookに書いてあるものを呼ぼうなんて、
考えたこともなかったから、それが原因かと思ったわ。
216:デフォルトの名無しさん
19/02/16 23:17:04.90 7Iomz0v50.net
そもそも配列名とプロシージャ名が同じところもおかしい
217:デフォルトの名無しさん
19/02/17 00:05:03.03 kxT8s3Mp0.net
馬鹿はそんなもん
間違いにくいようにコードを書くことをしない
218:デフォルトの名無しさん
19/02/17 09:02:57.20 hMcsTv+Y0.net
>>212
コードを書かなきゃ間違えないということか、なるほど。
それとも馬鹿は誤解を受けないような文章を書くことをしないってことか?
219:デフォルトの名無しさん
19/02/17 09:28:38.67 l7X7saNL0.net
俺が分かるからいいみたいな考えだとチームで開発はできないよ
220:デフォルトの名無しさん
19/02/17 10:19:09.83 hMcsTv+Y0.net
>>214
それはよく解る。保守性も悪くなるよね。
221:デフォルトの名無しさん
19/02/17 10:48:02.04 1fMGblo0M.net
一般的なプログラミング言語なら正しいけど、VBAだとかなり厳しくない?
下に合わせるとそれこそ可読性も保守性もクソもないゴミにしかならないよ
222:デフォルトの名無しさん
19/02/17 10:53:43.33 vi4O111wa.net
言語は問わず下に合わせるとゴミになる
属人性の排除といって下に合わせたがる人が少なく無いけどあれは間違いなんだ
223:デフォルトの名無しさん
19/02/17 11:25:11.92 EkiBf8gr0.net
VBAで下に合わせると、やたらSelect & Selection.Copyが多い、
マクロの自動記録じゃねえのこれ?
みたいなのが出来上がる。
224:デフォルトの名無しさん
19/02/17 11:45:18.78 7MWZQWrl0.net
ActiveHogeHoge へ参照が多いとそうなんだろうなと思うことにしている
225:デフォルトの名無しさん
19/02/17 11:45:44.34 l7X7saNL0.net
>>216
>>217
>>218
意味が伝わってないみたいだけど
cells(i, 1) = arr(i-1, 0) がセルに何が書き込まれるかはコードの前後を追わないと分からないよね
これを分かるようにするのが分かりやすいコード
プログラミングが上手か下手かは関係ない話
226:デフォルトの名無しさん
19/02/17 11:51:57.63 l7X7saNL0.net
多次元配列も Dim lngEleName As Long とか専用ループ変数を準備してるならいいけど、ijkで回してるのを見た日にはそいつを殴りにいくね。
227:デフォルトの名無しさん
19/02/17 11:59:45.89 plSLxTsM0.net
ひえー
なんか諸先輩方思うところ多かったようで
自分も書くとき気をつけないと
初心者ですを免罪符にしないように気をつけよう
228:デフォルトの名無しさん
19/02/17 12:32:03.24 jVC6vo8Y0.net
>>221
i, j, k でいいよそんなのw
229:デフォルトの名無しさん
19/02/17 12:47:43.60 1fMGblo0M.net
>>221
i, j, k で分かりにくくなるような長ったらしいプロシージャを書くのが悪い
230:デフォルトの名無しさん
19/02/17 13:16:45.17 Nxpc9YF00.net
>>223
上司「お前クビ」
231:デフォルトの名無しさん
19/02/17 13:31:38.58 Nxpc9YF00.net
>>224
プロシージャが簡潔ならおk
232:デフォルトの名無しさん
19/02/17 13:42:14.79 gMXfU/jdM.net
>>225
つまらない趣味にこだわるのは中学生までだぞ
233:デフォルトの名無しさん
19/02/17 13:49:15.60 gMXfU/jdM.net
偏見かもしれんがプログラミングで日常言語に近づけようとするやつは代数とか苦手だった?
って思っちゃう
234:デフォルトの名無しさん
19/02/17 14:06:36.59 7mUUrd8D0.net
蛇腹erは代数が苦手(キリっ
235:デフォルトの名無しさん
19/02/17 14:20:05.25 Nxpc9YF00.net
>>227
上司「このiってなに?ちゃんと説明して」
236:デフォルトの名無しさん
19/02/17 14:51:51.50 naWxhgEk0.net
単なるループカウンタですけど?
見ればわかりますよね?
237:デフォルトの名無しさん
19/02/17 14:57:39.75 k4RkjrxP0.net
>>221
Ing Ele ってなんの略ですか
238:デフォルトの名無しさん
19/02/17 15:13:51.30 Nxpc9YF00.net
>>232
しばくぞコラ(LongとElementだよ(にっこり))
239:デフォルトの名無しさん
19/02/17 15:32:11.89 t0Nzx7bGx.net
ループカウント用のプロシージャ内ローカル変数でiとかjとか使うのはありだと思う
モジュールレベル以上の参照スコープを持たせた変数をiとかjとかarrとかbufとかで宣言されてたら流石にキレるな
240:デフォルトの名無しさん
19/02/17 15:36:00.05 de8FYcuQ0.net
スコープが大きいほど変数名も長くして
241:デフォルトの名無しさん
19/02/17 15:43:21.47 urjL+jec0.net
今時ハンガリアン使ってるのクソダサい
242:デフォルトの名無しさん
19/02/17 15:49:41.73 Nxpc9YF00.net
俺はゴールデンの方が好き
猫飼ってるから無理だけど
243:デフォルトの名無しさん
19/02/17 16:33:33.48 Rm6p2g7t0.net
sheet1, sheet2とあって、sheet1に、
Private Sub ButtonClear_Click()
があります
これをsheet2のボタンを押したときに呼び出したいのですが、sheet2のsubで
Private Sub ButtonTest()
Worksheets("sheet1").Select
ButtonClear_Click
end sub
としてもそんなsubはないと言ってきます。他にもいろいろと試したのですがどうしたらいいのでしょうか
また、標準モジュール内で、
Sub ModuleTest()
Worksheets("sheet1").Select
ButtonClear_Click
end sub
としても同様に動きません
Worksheets("sheet1").ButtonClear_Click
とかしてもダメでした
244:デフォルトの名無しさん
19/02/17 16:40:07.44 vi4O111wa.net
共通の処理は共通モジュールかクラスに置いてください
シート1、シート2からはその共通の処理を呼び出してください
イベントハンドラはユーザーコードから呼び出すものではありません
245:デフォルトの名無しさん
19/02/17 16:50:40.07 Nxpc9YF00.net
>>238
Privateが付いてるプロシージャはそのモジュール内でのみ呼び出し可能
sheet1とsheet2は別モジュール
だから怒られてる
246:デフォルトの名無しさん
19/02/17 16:54:09.55 Bys9dR540.net
化石みたいなレスのあるスレだな
247:デフォルトの名無しさん
19/02/17 17:02:42.50 EkiBf8gr0.net
>イベントハンドラはユーザーコードから呼び出すものではありません
面倒くさいとき、普通に呼び出してたわ。
248:デフォルトの名無しさん
19/02/17 17:18:01.63 Rm6p2g7t0.net
>>240
Public にしてもはずしてもダメです
249:デフォルトの名無しさん
19/02/17 17:22:34.48 kxT8s3Mp0.net
馬鹿はClassを知らない
250:デフォルトの名無しさん
19/02/17 17:57:40.00 EkiBf8gr0.net
>>243
>>206みたいにしても?
251:デフォルトの名無しさん
19/02/17 18:15:37.59 l7X7saNL0.net
>>243
そもそもボタンってデフォで標準プロシージャに追加されなかったっけ?
標準モジュール作って、Sub ButtonClear_Click() をまるごと移動させたらいけんじゃね?
252:デフォルトの名無しさん
19/02/17 18:27:30.13 hMcsTv+Y0.net
>>244
そんくらい知ってるよ、夏の日の1993だろ。
昭和生まれをナメるなよ。
253:デフォルトの名無しさん
19/02/17 18:37:55.36 Rm6p2g7t0.net
調べてたらこんなのが出てきました
URLリンク(jscript.zouri.jp)
ちょっとずれてはいますが、ここで
// シートのマクロ関数を呼び出す
ExcelApp.Run( "MacroTest.xls!Sheet1.func1" );
ってのがあるから、標準モジュールだけじゃなくて、シートの関数も他のシートからも呼べるんだよね
マネてやってみたんだけどうまくいかん
254:デフォルトの名無しさん
19/02/17 18:52:24.20 EkiBf8gr0.net
いや、普通に、シートを指定するんじゃ駄目のかな。
>>206はThisworkbookに続けて関数名書いてるけど。
クラスモジュールもそうやって指定するでしょ?
255:デフォルトの名無しさん
19/02/17 18:53:32.60 X48frccGd.net
???
lngEle?なんかよりi,j,kの方がよっぽど良いだろ。
どんなスコープの場合でも特別な意味の無いループ変数だよ。
世界中で、さらにいうと他言語でも共有されてる価値観だろ。
まあ、ローカル以外で使われることは無いけど。
256:デフォルトの名無しさん
19/02/17 19:03:59.23 l7X7saNL0.net
シートモジュール特有の制約があるのかもしれないけど調べるのめんどい
257:デフォルトの名無しさん
19/02/17 19:07:37.68 X48frccGd.net
>>238
根本的に考え方が分かっていない。
まず、色んな所から呼び出したいものは標準モジュールに書く。
そして、そいつを色んな所から利用するように設計する。
君の場合はButtonClear_ClickをSheet1からもSheet2からも使いたいんだからButtonClear_Clickの中身を別関数にして、Sheet1のButtonClear_Clickからその関数を呼び出すようにする。
258:デフォルトの名無しさん
19/02/17 19:09:51.42 vi4O111wa.net
vbaerは他の言語やらんから非常識なコードを悪気なく書いてしまうんだよな
259:デフォルトの名無しさん
19/02/17 19:12:06.36 Rm6p2g7t0.net
>>252
ちょっと�
260:痰、んだなあ sheet1にPrivate Sub ButtonClear_Click() ってかいてるでしょ。 この処理はシート1に対してする処理なのです それをシート2から、ある特定のタイミングでしたいので、こうなっている 標準モジュールにあるものはもちろん呼べるけど、疑似的にもそうしないといけないのかな
261:デフォルトの名無しさん
19/02/17 19:19:24.91 l7X7saNL0.net
>>254
Worksheets(“シート名”).Range() = 処理
262:デフォルトの名無しさん
19/02/17 19:20:23.75 EkiBf8gr0.net
試したら、Sheet2.ButtonClear_Clickで動くわ。
もちろん、Privateは削除でね。
>>252
一般的にはそうだけど、
実際には出来るんだから、思い込みだよ。
263:デフォルトの名無しさん
19/02/17 19:22:02.36 l7X7saNL0.net
ていうかsheet1にコードを書いたとしてもsheet2がアクティブになってればそっちに書き込まれるからね
264:デフォルトの名無しさん
19/02/17 19:22:44.45 Rm6p2g7t0.net
>>256
Worksheets("sheet1").ButtonClear_Click
みたいな仰々しいことしなくても良かったのね。 ありがと。 あとでやってみる
265:デフォルトの名無しさん
19/02/17 19:33:19.37 l7X7saNL0.net
>>258
それは入れる物が間違ってる
266:デフォルトの名無しさん
19/02/17 19:50:26.47 X48frccGd.net
>>254
違わない。
設計の話をしている。
シート2からも呼び出すんだからシート1に対して行う処理であっても変わらん。
というか、基本的な所で噛み合ってないな。
どんな所に書いてもいきなりブックやシートの省略はしないのが基本だぞ。
Withを使うかオブジェクト変数で受けるのが基本だ。
267:デフォルトの名無しさん
19/02/17 19:56:06.48 Rm6p2g7t0.net
>>256
おかしいなあ。 オブジェクトが必要ですっていうエラーが出てきて動かない
268:デフォルトの名無しさん
19/02/17 19:56:59.16 9z/u7JpJ0.net
「ちょっと違うんだなあ 」は草
269:デフォルトの名無しさん
19/02/17 20:15:00.10 jhLaQWBk0.net
>>261
君面白いねえ
270:デフォルトの名無しさん
19/02/17 20:26:28.38 l7X7saNL0.net
>>261
Sheet1.Select
271:デフォルトの名無しさん
19/02/17 20:36:24.20 EkiBf8gr0.net
>>261
これでtestって出ない?
[シート1]
Sub ButtonClear_Click()
MsgBox "test"
End Sub
[シート2か標準モジュール]
Sub ButtonClear_Click()
Sheet1.ButtonClear_Click
End Sub
272:デフォルトの名無しさん
19/02/17 20:39:08.27 Rm6p2g7t0.net
>>264-265
sheet1.Selectをしなくても、セルへの代入だけなら出来た.。 シート2のボタンを押しても、シート1のセルに書き込まれる
でも、Cells(10,10).Selectみたいなセルの選択をするときは、sheet1.selectをしておかないとエラーになる
273:デフォルトの名無しさん
19/02/17 20:43:50.21 l7X7saNL0.net
>>266
書き込みたいシート名を指定する
Worksheets(“シート名”).cells(1,1) =
274:デフォルトの名無しさん
19/02/17 20:44:14.77 EkiBf8gr0.net
>>266
こうやって書けば。
Worksheets("Sheet2").Cells(10, 10).Value = "test"
275:デフォルトの名無しさん
19/02/17 20:46:06.79 Rm6p2g7t0.net
>>267-268
いやだから、書き込みだけなら、問題なく出来るって書いたじゃん
裏でも出来る
でも、セルの選択とかが入ると、シートをSelectして動かないとダメ
276:デフォルトの名無しさん
19/02/17 20:47:37.46 l7X7saNL0.net
>>269
そりゃそうでしょ
277:デフォルトの名無しさん
19/02/17 20:53:21.26 l7X7saNL0.net
つーかエラーメッセージ全部貼って見せて
278:デフォルトの名無しさん
19/02/17 21:43:11.83 de8FYcuQ0.net
vbaの関数ってデフォルトが参照渡しなんすね
やらかすとこだった
279:デフォルトの名無しさん
19/02/17 21:45:56.53 kxT8s3Mp0.net
お前らオブジェクトのこと全然わかってないんだな
馬鹿ばっか
280:デフォルトの名無しさん
19/02/17 21:57:57.43 l7X7saNL0.net
>>273
答えplz
281:デフォルトの名無しさん
19/02/17 23:04:18.50 t0Nzx7bGx.net
こんなスレ見てたら頭おかしなルで
282:デフォルトの名無しさん
19/02/17 23:11:53.07 kxT8s3Mp0.net
>>274
継承されたわけでもないオブジェクトから別のオブジェクトのメソッドをどうやって呼び出すかわからんのか?
馬鹿は死ねよ。
283:デフォルトの名無しさん
19/02/17 23:38:23.26 vi4O111wa.net
言い過ぎでは?
繊細な人だったら傷付くよ
284:デフォルトの名無しさん
19/02/17 23:57:36.39 t0Nzx7bGx.net
シート1内外から呼べるPublicな共通関数を作って、クリックイベントハンドラのコードと他モジュールのコードの双方から呼ぶようにすれば良いだけでは
イベントハンドラを直接コードユーザにコールさせようとするのはおかしい
285:デフォルトの名無しさん
19/02/18 00:01:45.68 WfgOED4y0.net
>>272
ByRefもByValも付けずに宣言するとそれはByRefになるって事をかな?
であれば既にやらかしてるのを気づかずにいる可能性があるから過去のモジュールを点検した方がいい
286:デフォルトの名無しさん
19/02/18 00:02:49.20 5bMGA+jIa.net
いやよく考えるとイベントハンドラを呼ぶのはおかしいがシート2クラスのメソッドを呼ぶだけなら別におかしくはなかった
それだけでは共通化する理由にはならない
287:デフォルトの名無しさん
19/02/18 00:59:55.76 hC76sm/R0.net
>>276
へーシートもオブジェクトなのか
全然意識してなかったわ
勉強になったよありがと
でもお前口悪いから友達いなさそうw
288:デフォルトの名無しさん
19/02/18 01:23:07.51 hC76sm/R0.net
シートモジュールに構造体宣言してハマった記憶がある
そういうことだったのか
289:デフォルトの名無しさん
19/02/18 01:23:55.49 5t9ctY5m0.net
頭が悪い 顔が悪い 目が悪い 口が悪い
性格も悪い 手癖も悪い 足腰も最近悪い
酒癖も悪い 女癖も悪い 寝つきも悪い
そんな俺でもその返事の仕方は失礼なんじゃないかな?
とは思うけど。
もしや高度なツンデレさんなのかな?
と、解釈して
次の方 ( ゚д゚)ノどうぞ
290:デフォルトの名無しさん
19/02/18 06:33:10.39 hC76sm/R0.net
きっと彼の親はVBAに殺されてしまったんだよ
291:デフォルトの名無しさん
19/02/18 08:08:58.79 MgpZvmd8x.net
シートもオブジェクトなのか、ってのはちょっと驚いたな
シートどころか自作フォームも含めてGUIで見て触れるもののほぼすべてがオブジェクトだぞ
292:デフォルトの名無しさん
19/02/18 08:18:13.27 8se8rGxR0.net
なんか、バカばっかりだなあ
>>269に他のシートにもアクセスできるって書いてあるだろ。何がオブジェクトだよ
ただ、セルのセレクトは出来ないって
293:デフォルトの名無しさん
19/02/18 08:58:38.38 AsxIQPE70.net
前にやってたユーザサポート業務を思い出した
294:デフォルトの名無しさん
19/02/18 12:38:44.05 UyrImbcld.net
>>286
バカはお前。
そのセルのセレクトができないと言ってる元の命令がオブジェクトがどういう階層になってるか分かってない典型的な例。
そういう人のコードだから、セレクトなんて必要無いだろうなと先読みしてるんだろう。
何しろセレクトすることなんて極めて殆ど書くことが無い(必要となることが無い)処理だからな。
295:デフォルトの名無しさん
19/02/18 13:13:11.83 qW3BE+Gz0.net
ブックもシートもセルもボタンもシェイプもみんなオブジェクトだよ
WindowsはOSそのものがオブジェクトの塊
そういうふうに設計されてる
296:デフォルトの名無しさん
19/02/18 13:49:41.69 uzxEynMwM.net
Selectionはイミィディエイトからはよく使う
297:デフォルトの名無しさん
19/02/18 16:12:57.29 JTiYKdtz0.net
化石観たいな臭いレスでも良いけど
もうちょっと面白いレスが観たいな
VBAネタもう飽きた
298:デフォルトの名無しさん
19/02/18 16:21:45.06 luqjRhnP0.net
URLリンク(japan.cnet.com)
「Microsoftにとって、(Officeのような)ウェブベースのアプリケーションサービス
を提供することは願ってもないことだろう。これにより、エンドユーザーや違法コピー
の問題をもっとしっかりコントロールできるようになる。しかも、大量にメディアを
用意したり、それを流通させるコストも不要になる」
--Garcia on Slashdot
299:デフォルトの名無しさん
19/02/18 16:23:02.33 L3SsO4kg0.net
>>292
誤爆してしまった。
スマソ。
300:デフォルトの名無しさん
19/02/18 17:39:58.04 xGyDNRFK0.net
VBAスレにまで来てVBAネタ飽きたって、こんなとこくる暇があったら病院行った方が良いんちゃう?
301:デフォルトの名無しさん
19/02/18 21:13:51.18 25ajLZ330.net
vbaおそすぎい…
302:デフォルトの名無しさん
19/02/18 21:25:29.27 Y1NxofRZx.net
Selectメソッドは記録マクロの記述のためだけに存在する命令と言ってもいいくらいのものだからな
実際に実務でSelectメソッドを書いたことは殆どない
特定のセル範囲(特に複数セル)が選択された状態を作り出すことに実務上の意味があるならば書かざるを得ないんだろうけど
303:デフォルトの名無しさん
19/02/18 21:53:14.97 eiV6jRN10.net
どうしてセレクチオンしないの~!
304:デフォルトの名無しさん
19/02/18 22:15:32.75 aFs+DxuY0.net
>>296
コードの最後に
cells(1,1).select
って書いておくのが僕
305:デフォルトの名無しさん
19/02/18 22:31:21.38 R8eupock0.net
カーソル位置の初期化によく使うけどな。Select
306:デフォルトの名無しさん
19/02/18 22:37:53.94 hG18nYywr.net
application.gotoを使う
307:デフォルトの名無しさん
19/02/18 22:51:42.46 Y1NxofRZx.net
スクロールの有無を選べるApplication.Gotoの方が小回りが効くわな
308:デフォルトの名無しさん
19/02/18 23:52:49.47 hC76sm/R0.net
SelectよりActivateの方がしっくりくる
309:デフォルトの名無しさん
19/02/19 00:02:24.54 mTnWFuG30.net
>>302
違いってなんだっけ?
310:デフォルトの名無しさん
19/02/19 00:21:46.10 XTzrMDQC0.net
selectは複数できる
acrivateは1つだけ
selectしたcellsはselectionで取得でき、
activateしたセルはActiveCell
また、
ActiveCellはsheetではなくapplicationのメンバ
Application.ActiveCell.Select
↓はできない
sheets(1).activeCell.Select
今色々試しただけだから、間違ってたらゴメン
311:デフォルトの名無しさん
19/02/19 08:36:38.55 9CovpibD0.net
>>304
Oh,thx.
312:デフォルトの名無しさん
19/02/19 11:46:22.25 9gUKp59aM.net
WebBrowserのフォームに文字列変数に入れたHTMLを反映させるのってどうすれば良いですか?
313:デフォルトの名無しさん
19/02/19 12:39:59.48 oemf1bOsd.net
>>306
説明が分かりにくい。
WebBrowserのフォーム
→フォームにWebBrowserコントロールを貼り付けたもの?
文字列変数に入れたHTML
→指定したURL?
フォ―ムにWebBrowserコントロール貼り付けて、指定したURLを表示させたいってこと?
314:デフォルトの名無しさん
19/02/19 12:42:06.27 oemf1bOsd.net
それともHTMLのソースコードを元にブラウザ表示させたいってこと?
315:デフォルトの名無しさん
19/02/19 13:02:37.15 XTzrMDQC0.net
>>306
input type="text"を変更したいんでしょ
メールアドレスに「123」を入れる例
めっちゃめんどくさいけどガンバレ
Private Sub UserForm_Activate()
WebBrowser1.Navigate ("URLリンク(opentype.jp))
End Sub
Private Sub UserForm_click()
Set hec = WebBrowser1.Document
Set mailaddress = hec.GetElementsByName("MailAdress2").Item(0)
mailaddress.Value = 123
End Sub
316:デフォルトの名無しさん
19/02/19 13:06:28.07 DYfM7cdrH.net
質問じゃないけどcsv取り込みでQueryTable使ったら感動した
ググるとほとんどLine Inputでやってるんだもんなぁ
317:デフォルトの名無しさん
19/02/19 13:10:41.92 mzDqOD0La.net
ExcelでJavaScriptが使えるみたいだけど、どんなことに使えるのでしょうか?
318:デフォルトの名無しさん
19/02/19 13:21:57.84 XTzrMDQC0.net
>>310
便利なんか?
住所の番地ってどうにかできるんかね
1-1が日付扱いになってしまう
>>311
jsがどうこうではなく、vbaが化石すぎる
jsは慣れれば超楽に書ける。これから覚える人は大分楽できるんじゃないかな
ただ、jsはところどころじゃあくなので気をつける必要がある
具体的にはundefined
319:デフォルトの名無しさん
19/02/19 13:30:09.72 mzDqOD0La.net
>>312
おぉ!レスありがとう😊
そっかぁvbaは化石か…
今職場で必要だから、業務を通して勉強してるんだよね。
JavaScriptは少し勉強してたけど、会社が受け入れてくれるかな。
320:デフォルトの名無しさん
19/02/19 13:35:17.78 XJA9DtkM0.net
>>296
広範囲のソートとかどうすんの?
321:デフォルトの名無しさん
19/02/19 13:44:22.98 XTzrMDQC0.net
>>313
幾つか忘れていた
jsのメリット
・jsはwebでも標準的な言語
・イラレのスクリプトもjsで動かす事もできる。ほとんど使わないけど
・googleSpreadsheetのマクロはjs
ただ、化石言語にもいいところはある。今までのノウハウがweb上に山程ある
そして仕様変更も20年なかったから、全コードがそのまま使える
(他の言語はバージョン違いでエラーが発生したり、全く動かなかったりする)
結局やることはエクセルのスクリプトなので、vbaでも十分ちゃ十分、
jsのノウハウが積み上がるまでは、vbaの方が楽出来ると思う
322:デフォルトの名無しさん
19/02/19 13:55:09.79 mzDqOD0La.net
>>315
なるほどなるほど。
詳しく説明してくれてありがとう!
たしかにvbaは歴史があるから、調べてるのは楽だよね。
JavaScriptはしばらく家で勉強した方が良さそうだねw
時期をみて上司に提案してみるよ!
323:デフォルトの名無しさん
19/02/19 14:12:13.94 yAUMSA3na.net
Java script は
VBA → VB.Net → ASP.net って勉強して行く過程で勉強することになるから
そんなに慌てなくてもいいよ
324:デフォルトの名無しさん
19/02/19 14:15:00.77 D8b3v+FoM.net
>>317
ドヤ顔のところ申し訳ないけど、ASP.NET(最新のものではなくVBerが知っている方のASP.NET)も化石だよ
325:デフォルトの名無しさん
19/02/19 14:16:57.12 D8b3v+FoM.net
ちなみに最新のASP.NETと呼ばれるものはVBer達がよく知っているASP.NETとは全く互換性がない
それどころか.NET Frameworkすら切り捨てた
326:デフォルトの名無しさん
19/02/19 14:24:40.78 XTzrMDQC0.net
>>319
知らなかった、昔のASP.NETの印象しかない。名前が完全に足引っ張ってる
327:デフォルトの名無しさん
19/02/19 15:20:23.15 oSkNfL9QM.net
>>307
>>309
説明不足すみませんでした
ユーザーフォームにwebBrowserのコントロールを張り付けて、そこにURL指定ではなくて直接htmlの文章を書き込みたいです。
328:デフォルトの名無しさん
19/02/19 15:44:15.07 XTzrMDQC0.net
>>321
かなりめんどくさいことをしている気がする
やりたい事はこれじゃないんじゃないか
Private Sub UserForm_activate()
'多分一回呼ばないとダメ
WebBrowser1.Navigate ("URLリンク(example.com"))
End Sub
Private Sub UserForm_Click()
html = "<div>foo</div>"
WebBrowser1.Document.body.InnerHtml = html
End Sub
329:デフォルトの名無しさん
19/02/19 16:06:51.67 XJA9DtkM0.net
四角の領域を表す構造体にRECTというのがありますが、領域が10個あってしかも定数です
その中にあるポイントがあるかどうかを判断するのに、 PtInRectを使いますが、10個のRECT領域をどうやって
定義するのか考えています
Dim rect1 as RECT, rect2 as RECT ,,,,, rect10 as RECT
とやって、これらに定数を代入するときにいちいち
rect1.Top = 10
rect1.Left =10
---
rect10.Bottom = 1000
rect10.Right = 1970
とかやってたら大変です。 Cとかなら
rect1 = CRect( 10,10,100,100)
って出来ますが、VBAでは出来ませんか。 またやりたいのは、PtInRectなので、簡単に
if PtInRect( CRect( 10,10,100,100), x,y) <> 0 then
みたいにしたいのですが、どうしたら一番スマートに出来るでしょう?
330:デフォルトの名無しさん
19/02/19 16:25:56.81 DYfM7cdrH.net
>>323
四角形を描画するメソッドは知ってる?
331:デフォルトの名無しさん
19/02/19 16:32:07.86 DYfM7cdrH.net
>>323
ごめん勘違い
GetCursorPos()
332:デフォルトの名無しさん
19/02/19 16:34:56.56 DYfM7cdrH.net
>>323
またまた勘違い
座標の指定はむりじゃね
それぞれの四角形の位置関係に規則性はないんでしょ
333:デフォルトの名無しさん
19/02/19 16:46:08.58 DYfM7cdrH.net
Topとか名前を付けないで配列の要素番号に対応づけるとか
334:デフォルトの名無しさん
19/02/19 19:15:58.92 C6whiypoM.net
>>322
それです!ドストライクです!!
エスパーさん手間を掛けて本当にすみませんでした。
二日考えてダメだったんですけど一回何か表示させる必要があったんですね。
あと次回は自力で出来るように頑張ります~!!
ありがとうございました!
335:デフォルトの名無しさん
19/02/19 19:40:34.45 VgLhyIar0.net
カンマ区切りのCSVファイルを2次元配列に入れたい。
Dim arr()
arr=getCSVData(strFile)
private Function getCSVData(byval ...)as string()
Dim tarArr()
//処理
getCSVData=tarArr
end Function
こんな感じで配列にして1次元が行、2次元が列に格納したいんですが
ReDim、ReDim Preserveのタイミング等々が分かりません。
先に一度開いて行数と列数の最大を取得してからReDimでtarArrを2次元配列にし、もう一度開いて一行ずつ読み取ってカンマ区切りをsplitして配列に入れてからUBound分ループしてtarArrに入れる方法ですかね?
336:デフォルトの名無しさん
19/02/19 20:09:29.49 3o3WGLUD0.net
>>329
多次元配列は最後の要素しか拡張できないから、左の要素はUbound(Split(1行目,”,”))で最初に確定させるしかない
右の要素はredim preserveで拡張できるから普通にループで増やしていけば良い
337:デフォルトの名無しさん
19/02/19 20:17:18.51 f2qQz3/xx.net
>>323
クラスにしたらいいんじゃないの
vbaで引数付きコンストラクタの実現は難しいけど、
四つの座標情報を引数に取るプロパティ関数を用意して、Rect構造体のプロパティを持たせるようにすればそれらしいことができるのでは
338:デフォルトの名無しさん
19/02/19 20:41:15.17 XJA9DtkM0.net
>>331
VBAでもクラスって出来たんですね。 ちょっとググってみました
ありがとう。 これは知らなかった
339:デフォルトの名無しさん
19/02/19 21:21:04.93 eXSGnhOj0.net
>>323
構造体でできなくはない
VBAの構造体、制限多いけどな
Public Type Rect
Top As Integer: Left As Integer: Bottom As Integer: Right As Integer
End Type
Public Function CRect(Top As Integer, Left As Integer, Bottom As Integer, Right As Integer) As Rect
Dim r As Rect
r.Top = Top: r.Left = Left: r.Bottom = Bottom: r.Right = Right
CRect = r
End Function
Public Function PtInRect(Rect As Rect, x As Integer, y As Integer) As Boolean
If Rect.Left < x And Rect.Right > x And Rect.Top < y And Rect.Bottom > y Then
PtInRect = True
End If
End Function
Public Sub test()
Dim r(10) As Rect
r(1) = CRect(10, 10, 100, 100) '...
If PtInRect(r(1), 15, 180) Then
MsgBox "In Rect1"
End If
If PtInRect(CRect(10, 10, 100, 100), 15, 80) Then
MsgBox "In Rect2"
End If
End Sub
改行多すぎらしいので:で詰めて書いてる
340:デフォルトの名無しさん
19/02/19 21:25:35.60 eXSGnhOj0.net
>>329
エクセルでCSV開いてシートをそのまま2次元配列に突っ込めば良いんじゃないか
341:デフォルトの名無しさん
19/02/19 21:47:03.10 LH3y88CS0.net
>>319
え?
そうなの?
それは知らなかった。
ちなみに最新はASP.netのcore2.1だと思うんだけど
VisualStudioでASP.Net Coreプロジェクトを作る際、
.Net Coreと.Net Freamworkのどちらのプラットフォームを選択するか聞いてくるけどあれは何なの?
342:デフォルトの名無しさん
19/02/19 22:14:11.03 +ssFN3TXa.net
>>335
ASP.NET Core 3.0以降ではFull .NETが切り捨てられることが公式に明言されてる
3.0はまだPreviewだけどね
343:デフォルトの名無しさん
19/02/19 22:33:29.04 LjPGQpms0.net
Dimってどこに書いてますか?
全部最初に書きますか?
For i= 0 to 100
for j = 0 to 100
iとjを使った処理
next
next
この時、Dim j as Integer ってどこに書きますか?
「For i= 0 to 100」の上か下かという質問です。
344:デフォルトの名無しさん
19/02/19 22:37:52.77 XTzrMDQC0.net
定義は一番最初にまとめて全て書くと管理しやすい
個人的にはそもそも書かないけどな~
345:デフォルトの名無しさん
19/02/19 22:45:04.21 VgLhyIar0.net
>>330
自分でも調べてたけど、「最後の要素しか増やせない」って同じこと書いてありました。これは
例えば、行数読んだ結果がLcnt=10だとして
まず
ReDim(Lcnt,0)で作り
配列(0 to 10,0)ができ
Redim Preserve(Lcnt,Ubound(Split(1行目))
区切った値が5なら
配列(0 to 10,0to5)が出来てしまい、いっぺんに右の要素数が変更されるってことで合ってます?
と言うことは、1行目が5列で次に読んだ2行目が3列なら右の要素数は3に減るって事ですかね?
ifか何かで要素数は増える時だけRedim Preserveのが良いですかね?
346:デフォルトの名無しさん
19/02/19 22:50:47.62 VJWnLClRd.net
>>337
VBは上にまとめ
C#は使う時
他の言語はしらん。あくまでイメージ。
スコープは短くが理想だから長くなって下部に変数が初登場ならFunctionとかCallで余分そうなものは排除。
だからそのループも逃がす
347:デフォルトの名無しさん
19/02/20 00:08:08.78 Hgznwu9O0.net
>>339
あなたの用途に合ってるのは2次元配列じゃなくて配列の配列。
ReDim arr(0 To n)
arr(i) = 別の配列 ` i : 0~n
みたいなことができる
「別の配列」のところに、csvの一行分を処理して配列を返す関数を当てはめればいい。
もちろんクラス化してもいいけどさ
348:デフォルトの名無しさん
19/02/20 03:34:25.29 B2QSVSiS0.net
>>329-334
Ruby では普通に、2次元配列に入る
require "csv"
p CSV.read( "test.csv" )
結果
[["id", "first name", "last name", "age"],
["1", "taro", "tanaka", "20"],
["2", "yumi", "adachi", "21"]]
349:デフォルトの名無しさん
19/02/20 07:38:24.67 5mnmpgTAH.net
クラスって要素名を予め宣言しないといけないからcsvの要素が変わると対応できない?
教えてエロい人
350:デフォルトの名無しさん
19/02/20 07:54:07.56 KjQRkkj7x.net
要素名で名前解決する処理がないなら、レコード値を配列プロパティで受け渡すだけで良いと思う
名前解決が必要なら要素宣言しないといけないね
351:デフォルトの名無しさん
19/02/20 11:17:04.40 Aqbfj0bAp.net
教えてください。
エクセルのマクロです
PDFファイル(100ページくらいある)を、エクセルに、全ページをたて一列に貼り付けたいのですが、
どう書けばいいでしょうか
352:デフォルトの名無しさん
19/02/20 11:58:45.20 EgtCXVwuM.net
RPAを買ってコピペを自動化するのが手っ取り早いよ
353:デフォルトの名無しさん
19/02/20 12:07:33.49 crzgHpZv0.net
なぜPDFを貼り付けるのか
そのまま印刷すればええやん
そのPDFは1つのファイルの中に100ページあるの?
1ページだけのPDFファイルが100個あるの?
バラバラのPDFファイルを1つに結合したいだけならフリーウェアでできるよ
354:デフォルトの名無しさん
19/02/20 12:28:15.94 Aqbfj0bAp.net
>>347
印刷のためじゃなく、PDFをシートにはり、横にエクセルでコメント入れたい。
355:デフォルトの名無しさん
19/02/20 12:36:44.12 5mnmpgTAH.net
コメントならPDFファイルでも入れられるよ
356:デフォルトの名無しさん
19/02/20 12:37:09.49 HgkG/6H60.net
>>345
PDFを画像に分割→エクセルに貼り付け
って流れになる
PDFから直接どうこうは止めたほうが良い、PDFを触るのはかなりめんどくさい
PDFを画像に分割するソフトがあると思うから、まずはそれを探して試してみて
どういう形式で画像が出て来るかが分かれば、後はvba簡単に書けると思う
>>349
そういやそっちの方が早いね
357:デフォルトの名無しさん
19/02/20 12:38:58.44 Aqbfj0bAp.net
>>349
大量のコメントや式です
358:デフォルトの名無しさん
19/02/20 12:39:49.65 Aqbfj0bAp.net
>>349
大量のコメントや式です
359:デフォルトの名無しさん
19/02/20 12:41:03.23 zcHFtFOnd.net
>>345
「教えてください」で始まる質問をするのは馬鹿しかいない法則
360:デフォルトの名無しさん
19/02/20 12:53:11.56 Aqbfj0bAp.net
分割するとは?
100ページのドキュメントだから100個のファイルを作成するということでしょうか。
361:デフォルトの名無しさん
19/02/20 12:55:03.75 HgkG/6H60.net
そういう事
362:デフォルトの名無しさん
19/02/20 13:15:01.09 Aqbfj0bAp.net
分割しないで、ページを読み込み、貼り付けはできないのでしょうか?
363:デフォルトの名無しさん
19/02/20 13:17:35.13 5mnmpgTAH.net
100in1で出力すればいけんじゃない?
364:デフォルトの名無しさん
19/02/20 13:27:36.70 zcHFtFOnd.net
エクセル方眼紙の厚かましい馬鹿は死ね
365:デフォルトの名無しさん
19/02/20 13:27:47.31 5mnmpgTAH.net
PDFを画像にするっていうのはプリンタで印刷するのと同じイメージだから基本1ページ1ファイルね
366:デフォルトの名無しさん
19/02/20 13:48:22.42 HgkG/6H60.net
>>356
できるけどめんどくさいんだって。
自分用ですら>>350の手順踏む
この件は誰もやらんって断定するから諦めたほうが良い
367:デフォルトの名無しさん
19/02/20 13:51:25.06 5mnmpgTAH.net
pdfをtxtにできるサイトがあるね
368:デフォルトの名無しさん
19/02/20 14:19:25.05 3CKo6tJGF.net
そもそもスレタイ読めない馬鹿は死ね
369:デフォルトの名無しさん
19/02/20 14:49:29.70 crzgHpZv0.net
どうしてもVBAとExcel上でやりたかったら
100ページのPDFを100枚の画像に変換するのはフリーウェアで一発でできる
画像をワークシートに並べるだけならVBAで簡単に書ける
上司の命令とかで他の選択肢がないなら、俺ならこうする
370:デフォルトの名無しさん
19/02/20 16:49:36.00 RE4oCyjZM.net
371:l="noopener noreferrer" target="_blank" class="reply_link">>>345 >エクセルのマクロです なにがどうエクセルのマクロなのか全くわからなくて面白かった
372:デフォルトの名無しさん
19/02/20 17:37:12.40 HgkG/6H60.net
>>362>>364
エクセルのマクロだけでいけるとおもったんやろ
実際出来なくはないと思うけどすげーしんどいって事にまで気が回らなかったことは仕方ない
373:デフォルトの名無しさん
19/02/20 17:59:23.96 lkHSh4f40.net
「○○したいんですけど教えて下さい」
「なんでそんなことしたいの?バカなの?」
何でこんな回答いちいちすんだろ
答えてくてウズウズしてる自称プロが自分のわからない質問来てカリカリしちゃってるのか?
374:デフォルトの名無しさん
19/02/20 18:50:33.54 fho/sw2r0.net
なんでそんなめんどくさいことするの?
〇〇でよくね?
とかよく見るけど、質問者が聞いてる事だけ教えればいいのにと思う。
375:デフォルトの名無しさん
19/02/20 19:09:49.05 W87kh7t10.net
できない。
以上。
376:デフォルトの名無しさん
19/02/20 19:09:49.63 HgkG/6H60.net
>>366
大正解
vbaと実務の範囲を分かってない未熟者
>367
それを言うと
「〇〇はやりたくないんですw」
という回答が帰ってくるのがもう過去何度も
377:デフォルトの名無しさん
19/02/20 19:19:56.14 xmZEnq49a.net
QAに集中したいならteratailかstackoverflow.jpがオススメですよ
378:デフォルトの名無しさん
19/02/20 19:30:07.27 Aqbfj0bAp.net
1ページ目が貼り付けられるけど、ページを指定できないのかな
379:デフォルトの名無しさん
19/02/20 21:05:48.46 Wi/z/KN10.net
>>311
htmlに書かれているJavaScriptを実行したい時とか。
380:デフォルトの名無しさん
19/02/20 22:38:30.49 jH2rY7Fc0.net
めんどくさいっていうか、AcrobatOLE使えないと無理じゃない?
Excelだけで完結できる手法あるの?
381:デフォルトの名無しさん
19/02/20 22:49:49.45 pZJkKCoer.net
>>367
質問者が気付いてない、知らないだけの場合もあるから
382:デフォルトの名無しさん
19/02/20 22:57:03.31 Wi/z/KN10.net
上司から言われてるだけというケースもあるだろうな。
383:デフォルトの名無しさん
19/02/20 23:14:04.77 zOoel5SRx.net
手順固定で指示する糞上司っているよね
その手順がボトルネックになって糞の塊のようなツールが出来上がったりする
384:デフォルトの名無しさん
19/02/21 01:06:52.19 wp9rEEne0.net
>>373
ハンドアセンブルを覚える。
バイナリで書き出す。
385:デフォルトの名無しさん
19/02/21 05:02:12.65 fo0B5AuF0.net
>>376
組織はそれが普通。趣味で仕事やりますというわけには行かない
386:デフォルトの名無しさん
19/02/21 07:46:17.08 X1BgxDGFM.net
昭和の労働集約的な企業の紹介乙
387:デフォルトの名無しさん
19/02/21 08:00:03.08 WrVB68JS0.net
趣味で作り上げたとしても説明してレビュー受けないといけない。その労力って結構きついしいっそ言われたまま作り上げた方が精神的にラクね
388:デフォルトの名無しさん
19/02/21 08:15:00.93 Uwc+mrjba.net
>>376
固定するのは百歩譲って良いんだけど説明も了解もなく決める人には困るね
より良い方法を提案する機会がないままルールとして決まってしまう
389:デフォルトの名無しさん
19/02/21 08:24:52.09 hsBre2j/H.net
マニュアル化できるレベルの仕事しかできないって自虐だろ
390:デフォルトの名無しさん
19/02/21 12:40:21.42 tE5CGhgad.net
1.質問に回答する。
2.質問者から、「その場合だと~が上手くいきません。」と返事。
3.その場合は~すれば良いと回答する。
4.質問者から「それだと~」...
5.2-4を何度か繰り返す。
6.質問者に「そもそも君はその処理で何をやりたいんだ?」と聞く。
7.質問者の返事を聞いて、結局質問者の設計が糞だったと知る。
8.1-7をを何度となく経験してると、質問を見た時に設計の糞さ加減がかなりの確度で予想できるようになる。
9.質問者の聞いてることだけ回答すると糞設計のせいでドツボに嵌まるので聞いてることだけ回答するのは辞めようという結論になる。
10.質問者は自分の糞設計に気付かないので、質問にだけ回答すれば良いのにと思う。
391:デフォルトの名無しさん
19/02/21 16:01:26.14 EV12A9vO0.net
こうやって質問者をひとくくりで決めつけちゃうような視野が狭い人が一番の癌なんだよな
バカほどなんでも決めつけて単純化させようとする
勝手に単純化させた結論を赤の他人にいきなり押しつけるから当然理解されない
理解されないことを相手がバカだからと決めつけていきなり罵り出す
頭がおかしい人なのかな?と放置されると論破して黙らせたと思い込んで悦に浸り出す
そしてプロ回答者としての自信を増して増長して居座る
392:デフォルトの名無しさん
19/02/21 16:10:32.99 7HScUEGsM.net
大抵の事務仕事は本来単純なことをわざわざ難しくして仕事を作っているだけなのは事実だね
VBAや最近だとRPAのような小手先の自動化ツールのは、本質的なプロセスの見直しに対するモチベーションを削いでいる面もある
393:デフォルトの名無しさん
19/02/21 16:23:50.23 YsIQ3BIo0.net
営業はそれが売上に繋がってると信じてやまないので、
どうにもなんないのよ~
394:デフォルトの名無しさん
19/02/21 18:36:57.10 tE5CGhgad.net
>>384
お前が碌に回答したことが無い初心者なだけだろ。
いろんな所で回答してる奴らは皆同意する。
395:デフォルトの名無しさん
19/02/21 18:47:24.87 7HScUEGsM.net
>>387
同意するわ
明らかに知識の乏しい初心者が妙に具体的に手段を特定して助けを求めてきた場合、
「そんなことはどうでもいいから目的を教えろ」と対応するのが最も確実で効果的で手っ取り早い
396:デフォルトの名無しさん
19/02/21 18:56:23.16 YsIQ3BIo0.net
>>383
>8.1-7をを何度となく経験してると、質問を見た時に設計の糞さ加減がかなりの確度で予想できるようになる。
この辺りになると回答でイライラする事が無くなるゾ
397:デフォルトの名無しさん
19/02/21 18:57:24.28 ZuxKbWfpM.net
>>384
お前が決めつけててワロタ
398:デフォルトの名無しさん
19/02/21 19:18:39.73 AiPG59Hd0.net
プログラムって書き方って人それぞれ違うと思うけどみんな書き方どんな?
EXCELのセルデータをComboBoxに格納
メイン文
caii addcbo(FilePath,1,Me.cbo1)
caii addcbo(FilePath,5,Me.cbo2)
caii addcbo(FilePath,8,Me.cbo3)
Function addcbo(....)
※DAOでEXCEL開く
第2引数の列を下にループ
第3引数に空になるまで格納
End Function
てな感じのコードってどうなの?
俺は先に2次元配列でシート丸ごと持ってきてから入れてく感じにしたんだけど、ここにいる人達はどう書く?
399:デフォルトの名無しさん
19/02/21 19:30:43.16 UHF1Q6o+0.net
データ取得は別プロシージャにして配列につっこむ
400:デフォルトの名無しさん
19/02/21 19:43:21.62 YsIQ3BIo0.net
caiiってcallの事か
>>392が綺麗と思うけど、大抵>>391ぐらいで終わる
401:デフォルトの名無しさん
19/02/21 19:53:49.02 dFUlMofS0.net
>>391
おまえプロさんか?
まだプロさん予備軍やったら気いつけや
そこからプロさんに堕ちるんはあっちゅう間やで
402:デフォルトの名無しさん
19/02/21 19:57:47.93 EV12A9vO0.net
>>387
さすがプロ回答者の鏡
嫌なら別に回答者なんてやらなくてもいいんだよ?
質問者をひとくくりに見下すようなひねくれ者になってまでプロ回答者をやり続けてる目的ってなに?
こんなとこで他人を見下してなきゃ自尊心保てないとかそんな感じ?
403:デフォルトの名無しさん
19/02/21 19:58:58.69 YsIQ3BIo0.net
>>395
回答も質問もしないならさっさと消えて
404:デフォルトの名無しさん
19/02/21 20:03:08.56 mRRRBv2X0.net
>>384
こうやって回答者をひとくくりで決めつけちゃうような視野が狭い人が一番の癌なんだよな
バカほどなんでも決めつけて単純化させようとする
勝手に単純化させた結論を赤の他人にいきなり押しつけるから当然理解されない
理解されないことを相手がバカだからと決めつけていきなり罵り出す
頭がおかしい人なのかな?と放置されると論破して黙らせたと思い込んで悦に浸り出す
405:デフォルトの名無しさん
19/02/21 20:08:15.12 pV/9VR1fx.net
質問に対する回答よりも糞みたいな煽り合いに熱中する奴ってなんなの
406:デフォルトの名無しさん
19/02/21 20:14:11.51 UHF1Q6o+0.net
質問者は基本的に馬鹿
「インターネットは開くんですけどxxシステムが開きません」と言われてTraceやらブラウザ設定やらやった挙句、LANケーブルが挿さってないだけでインターネットはキャッシュでした、っていうようなオチが山ほどある
奴らの言葉を鵜呑みにしてはいけない
407:デフォルトの名無しさん
19/02/21 20:40:34.06 8KPV6qY80.net
ループから抜けるときにブレイクとかコンティニューないのこれ?
408:デフォルトの名無しさん
19/02/21 20:44:24.69 YsIQ3BIo0.net
>>400
exitがある
Sub foo()
For i = 1 To 1000
Debug.Print i
If i > 100 Then
Exit For
End If
Next
End Sub
409:デフォルトの名無しさん
19/02/21 20:49:56.47 dFUlMofS0.net
>>399←こいつホンマもんのプロさんやんwww
Traceてwwwwwwww
410:
411:デフォルトの名無しさん
19/02/22 00:25:53.24 9R98EKTp0.net
>>402
?
412:デフォルトの名無しさん
19/02/22 00:44:27.12 EpE2F9dV0.net
混沌とした質問ではなくてある程度整形された質問ならお互いに健全かもしれないね。
「例えば質問のためのテンプレ埋めてもらう」とかだけでもやり取りの回数減るんじゃないかな。
テンプレの内容はよくわからないけど、例えば「配列が解るか、オブジェクトが解るか、APIが解るか」とか書いてもらえれば質問者のレベルか解りやすいから罵ることもないだろうし
全体の流れの一部として困ってるのか、単純に言語仕様で困ってるのかだけでも質問者に必要なのがコンサルなのか解答なのか切り分けしやすいと思う。
413:デフォルトの名無しさん
19/02/22 00:57:28.09 nGlWTBX9a.net
【目的】
【何がわからないのか】
【どうなることを期待しているのか】
【何故それが必要だと考えたのか】
でいいよ
質問者のレベルなんてレスの内容見りゃわかるだろ
414:デフォルトの名無しさん
19/02/22 01:31:51.52 1cZDvNG50.net
>>405
>【目的】
>【何故それが必要だと考えたのか】
これは無くてもいいかも
多分あんまり良い情報は返ってこない気がする
>【何がわからないのか】
これも無くて良いかもしれないけど、
まぁ一応質問スレなので
後は最初の状態が欲しい
初めと終わりがあれば何とでもなる
それと反復頻度。一回だけなら一回だけ用の雑コードで済ますし、毎日ならもうちょい丁寧に書く
ってわけで以下になっていると楽
【作業前の状態】
【終了時の状態】
【何がわからないのか】
【作業の頻度(一回だけ or 何度も)】
415:デフォルトの名無しさん
19/02/22 05:05:38.47 +/kCrfoP0.net
データ量も欲しいなあ
1万件なら雑コード、100万件なら処理速度も意識してコード書く
416:デフォルトの名無しさん
19/02/22 09:18:19.59 OJD9m6ZlH.net
あんまり敷居を高くすると質問者が減るよ
417:デフォルトの名無しさん
19/02/22 09:36:13.35 tzlpYPDLx.net
質問者が減れば珍回答で恥をかくリスクも減って回答者のプライドが保たれるので問題ない
418:デフォルトの名無しさん
19/02/22 09:46:06.70 OJD9m6ZlH.net
>>409
そう考えてるのはお前だけだよ
419:デフォルトの名無しさん
19/02/22 09:53:52.37 HFM6F1Kc0.net
まぁプロ回答者どもが罵り合いやってますが、質問者の方はそんなの気にせず
どんどん質問してくださいな w
420:デフォルトの名無しさん
19/02/22 10:30:26.16 1cZDvNG50.net
>>408
どうすればいいか提案してくれ
421:デフォルトの名無しさん
19/02/22 16:26:24.07 brEIpzdG0.net
このスレの本質はプロ回答者選手権だからな
プロ回答者の敵はプロ回答者
質問者など餌に過ぎない
その餌を誰が一番上から踏み潰すかを競い合う
ちなみにプロ回答者にもなると質問に答えたりしない
422:デフォルトの名無しさん
19/02/22 16:41:48.96 1cZDvNG50.net
>>413
なるほど!
まさに>>413さんのような方ですね
423:デフォルトの名無しさん
19/02/22 16:46:43.90 8DxZ0bMn0.net
なるほど
プロ回答者ってのは「質問スレにおける回答活動」のプロって意味か
424:デフォルトの名無しさん
19/02/22 20:37:47.33 O594Y42ea.net
まぁ別に目的の記述は無くてもいいけど
何を目的にしているかの記述があれば
代替案考えてくれる人もいるだろうし
欲しい解答が得られやすい場合もあるわな
逆に余計なこと言って欲しくないのなら
書かないのも有りだと思うけど
解答者がゲスパーして答えるのも
また有りだと思うし
425:デフォルトの名無しさん
19/02/22 20:44:37.13 O594Y42ea.net
>>400
ループから抜けるのは>>401の人が言う通り
Exitを使えばいいけど、次のループに行くような
.Netで言うContinueはないので
分岐でループしているロジックの最後に持って行くしかないんじゃないかな?
426:デフォルトの名無しさん
19/02/22 21:01:06.12 Pvmgb/R80.net
ここの質問を見ると、よほど変なもん作らされてるんだろうなって思う。
何に使うのかわからないようなのが多くて、
実務で使いそうなのがあまり出てこない。
427:デフォルトの名無しさん
19/02/22 21:23:19.91 yyymEZ9cM.net
実務では文字列解析とデータベースからの検索程度で難しくは無いんだけど
適当に組んだせいか妙に遅いのが悩み
高速化するテクニックとかないかな
428:デフォルトの名無しさん
19/02/22 21:42:30.22 +/kCrfoP0.net
>>419
VBAを捨てる
429:デフォルトの名無しさん
19/02/22 22:11:55.73 moZ6n3ck0.net
>>419
早いpcに買い替える
430:デフォルトの名無しさん
19/02/22 22:45:12.67 Pvmgb/R80.net
二重Forループ
↓
VLOOKUP
↓
高速VLOOKUP
↓
SQL
これより速いのって、やっぱアセンブラ?
431:デフォルトの名無しさん
19/02/22 22:46:15.97 Pvmgb/R80.net
アドバンスフィルタが抜けてた。
432:デフォルトの名無しさん
19/02/22 23:22:12.68 Ig/cWVtXM.net
>>422
インデックスを張ってSQLでJOIN
オンデマンドなトランザクションじゃなくて単発の巨大なバッチならHiveとか使うのもいい
433:デフォルトの名無しさん
19/02/23 01:23:52.97 CTQXI+x50.net
エラーがわかりにくいのがいちばんのストレス
そのほかにも可変長引数とかジェネリクスとかwithの糞文法とか短絡評価未搭載とかインターフェイスが歪んだ設計になるとか色々遅れすぎ
所詮底辺が一発ツールで使う言語
434:デフォルトの名無しさん
19/02/23 01:28:03.84 M/apCBqcx.net
短絡評価がないせいでネストを深くせざるをえないときがあるんだよね
435:デフォルトの名無しさん
19/02/23 04:42:29.90 GIBqdFBY0.net
短絡的なVBerは多いのにな
436:デフォルトの名無しさん
19/02/23 07:16:01.49 F2VDrfwR0.net
>>425
その辺は仕方ない
C#やRubyやってる人がJavaは糞だって言ってるのと大差ない
437:デフォルトの名無しさん
19/02/23 09:04:33.17 Cm202fZQ0.net
>>425
エラーチェックは本当にな
これでforが無いって言われる。本当にないのはもちろnendif
さすがにもう迷う事は無いけど、
初心者の頃は散々苦しめられた
Sub foo()
For i = 1 To 10
If True Then
Next
End Sub
438:デフォルトの名無しさん
19/02/23 09:20:01.07 CvvsLWYy0.net
エラーってコードのエラーのことか
実行時のことかと思った
439:デフォルトの名無しさん
19/02/23 09:21:13.09 Cm202fZQ0.net
あぁ、実行時エラーの可能性もあるか
あれはactiveにしてないsheetのcellをselectした時はハマったけどそれ以外は特に・・・
440:デフォルトの名無しさん
19/02/23 09:21:56.77 CvvsLWYy0.net
唯一(?)の短絡評価である Select Case のリストはクソだと思いながらたまに使う
441:デフォルトの名無しさん
19/02/23 10:29:43.91 AFk0uxx90.net
短絡評価ってなんですか?
442:デフォルトの名無しさん
19/02/23 10:35:04.36 sW0ZRaO0a.net
>>433
お前がGoogleの採用選考を受けても学歴で足切りされて職務経歴の中身すら見てもらえないだろ?
結果が決まってるのに余計な評価をするのはリソースの無駄だからだ
そのように、評価が確定した時点で残りの評価を省いて結果を出す戦略を短絡評価という
443:デフォルトの名無しさん
19/02/23 10:49:47.77 CvvsLWYy0.net
>>434
GoogleはOr評価かもしれないよ
444:デフォルトの名無しさん
19/02/23 11:44:31.84 AFk0uxx90.net
>>434
お前バカだな
Googleは学歴より経歴重視だよ
445:デフォルトの名無しさん
19/02/23 12:14:20.39 yEreZVJRM.net
>>436
低学歴にも凄い経歴の奴はいるが、高学歴の中にはもっと沢山いるんやで
採用のための人的リソース最適化問題に対する戦略として、学歴フィルタが有効であることは十分に証明されている
446:デフォルトの名無しさん
19/02/23 13:07:59.71 AFk0uxx90.net
>>437
履歴書と職務経歴書って同封して送られてくるんだから同時に見ればいいじゃん
それとも30秒くらいの時間を惜しんで職務経歴書読まずにお祈りするの?
大した戦略だねw
447:デフォルトの名無しさん
19/02/23 15:21:22.50 yEreZVJRM.net
>>438
学歴なら人が見る必要すらないでしょ
書類選考のコストは一桁違うかと
448:デフォルトの名無しさん
19/02/23 16:24:43.18 UPmGtBeI0.net
>>438
たかが30秒と言う奴は10,000件あったら何時間かかるかを考えてからレスしろ
449:デフォルトの名無しさん
19/02/23 18:43:00.90 AFk0uxx90.net
Googleはそもそも学位が必要ない時点でお前らズレてんだよ
450:デフォルトの名無しさん
19/02/23 19:03:21.30 FI/m1MnA0.net
うんむ
451:デフォルトの名無しさん
19/02/23 19:33:38.12 to9UN42C0.net
ただの例にここまで突っ込むか?
452:デフォルトの名無しさん
19/02/23 20:37:03.99 CvvsLWYy0.net
短絡評価の例としてはわかりやすかった
453:デフォルトの名無しさん
19/02/23 22:13:21.58 CTQXI+x50.net
配列をインラインで生成する方法でもあればいいのに
454:デフォルトの名無しさん
19/02/23 23:20:45.04 E54ZDPfM0.net
>>400
ブレイクは >>401
Continueは、Nextの前に例えば CONTINUE:とラベル付けて、Goto CONTINUE で代替可。
これで何も過不足ないし、意図を読めないやつは(周りに)いないので、しょっちゅう使ってる。
455:デフォルトの名無しさん
19/02/24 04:42:51.56 ZjoVn9Sx0.net
goto使うと負けた気分になるけどネスト深くなるくらいなら使う
456:デフォルトの名無しさん
19/02/24 10:14:59.06 PMakJCH00.net
>>445
そういう関数を作れば解決する話では?
457:デフォルトの名無しさん
19/02/24 11:16:37.13 x1+EfWpB0.net
昔から言われてるけどGoToとかExitみたいな無条件ジャンプはできるだけ使うべきじゃない
ループから抜ける条件が複数ある時は、条件判定部分を関数にして外に出せばたいがい解決する
458:デフォルトの名無しさん
19/02/24 11:20:53.15 UtSvB3y70.net
>>449
3重構造のFor文とかって、いちいち全部のFor文に条件を書くんか?
459:デフォルトの名無しさん
19/02/24 11:27:07.38 cR8EPyISM.net
下向き限定なら許す
バカみたいな脱出フラグ使われるよりよっぽどマシ
上向きgotoは死ね
460:デフォルトの名無しさん
19/02/24 11:31:30.55 UtSvB3y70.net
>>446
VBAにはなんでContinueがないんだろうな
これ、ほんとめちゃ不便だわ。 これのためにもgotoは使ってるわ。てか、必須になっている
461:デフォルトの名無しさん
19/02/24 11:34:47.34 UtSvB3y70.net
Forの3重構造の場合、例えば、i, j, kで回したとき、一番中の処理で、
i=10000
j=10000
k=10000
とか設定したら、全部抜けるという技は使ったことはあるが、Next k の次に処理があってNext jとかってなってるときは
やはりgoto を使うので、結局こういう技は使わなくなった
462:デフォルトの名無しさん
19/02/24 12:03:06.64 laz54YR/0.net
for、特に二重ループから抜ける時はgotoで良い
if flg then exit for
こんなもん何個もあったら余計見づらいし間違う
>>449
気持ちはわかるけど、どうしても>>450になって余計に見づらい
>>45
20年前の言語で全く進化してないからな
python2.x→3.xの悪夢を見た者としてはこれはこれで良い
463:デフォルトの名無しさん
19/02/24 14:56:48.98 eghZe4V2x.net
Case (i) ⊇ Case (j) ⊇ Case (k)....っていう感じの線形の包含関係が無条件に成り立たない限り、3次元以上のループ管理はややこしくなるだけだよな
464:デフォルトの名無しさん
19/02/24 15:43:11.74 Jr9LmcmNd.net
>>429
それに苦しめられたのはお前が悪い。
きちんとインデントする自分なりのルールがあればそんなことには最初からならない。
465:デフォルトの名無しさん
19/02/24 15:50:41.15 Jr9LmcmNd.net
三重のル―プで条件によって全部から抜けるって処理自体あんまり無いだろ。
設計が悪いんじゃないの?
466:デフォルトの名無しさん
19/02/24 16:01:32.16 laz54YR/0.net
>>456
>それに苦しめられたのはお前が悪い。
どう見てもvbaのエラーチェックがしょぼすぎる
少なくとも>>429みたいなエラーチェックはあり得ない。あっても修正される
>>457
殆ど無いが、エクセルはそもそもがセルが行列の二次元+シートの三次元
開いてるブックを含めれば四次元だけど、さすがにこれは無い
全シートもあんまりないけどな
全セル(usedrange)に処理をかけて特定条件で抜けるというのは何度かあるな
ただまぁ別に抜けんでもそんあに変わらないというのもあるけど
467:デフォルトの名無しさん
19/02/24 16:43:43.47 EsuDtWv80.net
エラーがわかりにくいという話に
エラーを出すおまえが悪いとマウント取りに行くプロ回答者
マウントがとりたくてやってるのか本当にただのバカなのかどっちなんだろ
468:デフォルトの名無しさん
19/02/24 17:14:34.21 PMakJCH00.net
まあでも多重ループから一気に抜ける方法がExit Function/Sub しかないんだから
ループを含む部分をサブルーチンとして切り出す以外あるまいよ
469:デフォルトの名無しさん
19/02/24 17:42:50.42 RNHs4bDba.net
ループを回す以上はループを回す理由があるはず
その理由をわかりやすい関数名にしてループを切り出す
途中で抜けたければExitする
470:731
19/02/24 17:45:18.70 DRTFUInr0.net
いや、doとfor組み合わせれば二重ループ、三重ループからも抜けれるよ。
実用性は置いといて。
471:デフォルトの名無しさん
19/02/24 17:54:50.07 +Nxplz4k0.net
>>454
N88さわってたからループからgotoするのは違和感あるわ
472:デフォルトの名無しさん
19/02/24 18:03:52.89 vPp3qwU80.net
>>459
ただのバカだと思うよ。
あの場合は明らかにエラーメッセージがおかしい。
でも、エラーチェックしてると2つ以上の原因(またはどちらかが間違い)が考えられる場合がよくある。
その時どうメッセージ出すかは、作る人(仕様)次第。
ちなみに、
If xxx Then Exit For
If xxx Then _
Exit For
If xxx Then
Exit For
End If
それぞれ意見はあるだろうが、無駄に行増やしたくないが、マルチステートメントもな… なので、自作では2番目をよく使う。(もちろん仕様で決まってるならそれ優先。賛否について議論はしない)
473:デフォルトの名無しさん
19/02/24 18:39:00.05 L3+XvQB40.net
いつまで経ってもほったらかしにされてるVBAが悪い
Pythonがどうたら言う話はどうなった
474:デフォルトの名無しさん
19/02/24 19:22:57.41 PMakJCH00.net
資産が多すぎて移行不可
475:デフォルトの名無しさん
19/02/24 22:11:47.76 Jr9LmcmNd.net
>>464
最後の奴を使う。
インデントで明らか。
というか、そんなエラーを出すこと自体無い。
が、もちろんスタイルの問題だから一番最初の奴を使おうが2番目のを使おうが問題無い。
エラー出してもすぐに分かるならな。
ちなみにその最後の奴ならIfとEndIfを書いてからExit Forを書く。For Nextの場合も中身は後だ。
染み付いてるんでね。
別にそういう書き方をすべきと言ってるんじゃない。
エラーにすぐ気付くなら何も問題は無い。
476:デフォルトの名無しさん
19/02/25 05:22:32.65 +5CiRMIi0.net
PythonAという新しい言語が誕生します
477:デフォルトの名無しさん
19/02/25 09:04:42.27 8UCufaEGM.net
VBAって遅い?
セルにもの入れると遅くなるって以外で全般的に。
478:デフォルトの名無しさん
19/02/25 09:16:19.92 RXoXH9qp0.net
>>469
遅い
どうしてもエクセルが枷になる
大規模な計算をしたいならvbaは避けたほうが無難
479:デフォルトの名無しさん
19/02/25 10:41:49.47 8lMUk5exM.net
純粋な数値計算部分は遅くはないんだけどね
シートアクセスが遅いのはまあ
480:731
19/02/25 12:13:02.41 lRskRR3f0.net
>>469
ようするにVBの部分の話か?
変数の大ニュースとかループとか、配列のメモリ確保とか
481:デフォルトの名無しさん
19/02/25 12:31:17.59 iOBpdHSUd.net
確かに遅いんだけど、遅いと言ってる奴の大半はそいつのコードに問題があるような気がする。
コード変えたら100倍速くなったとかざらだし、VBAが遅いせいでと感じることは殆ど無い。
遅い場合でも処理を考えたら仕方ないと思える場合が殆ど。
482:デフォルトの名無しさん
19/02/25 12:42:50.70 iOBpdHSUd.net
>>471
純粋な数値計算部分が遅いと思うよ。
だからAPI使ってマルチスレッドのコード書いても処理が追い付かなくなる危険性があるわけで。
ただ、そんなの遅いと感じるようなものじゃないし、遅さが気になったら自分のコ―ドを疑った方が良い。
483:デフォルトの名無しさん
19/02/25 13:56:48.78 avG/zv9MM.net
裏で動かせるなら、処理遅くても他の作業してればエエねん。
終わったら、アイコン点滅して教えてくれればエエねん。
484:デフォルトの名無しさん
19/02/25 17:45:36.59 +5CiRMIi0.net
javascriptとvbaをネストする方法ってありませんか?
Dim ie As InternetExplorer
Set ie = CreateObject("InternetExplorer.Application")
ie.navigate ("URLリンク(kakaku.com))
中略
ie.navigate "javascript:var i; for(i=1;i<18;i++){page(i);}"
これで1から18までpage関数をまわすことができると思いますが
1ページごとに情報を抜き出すための処理をvbaで書きたいです。
対象のwebページはjapvascriptのpage関数を使ってしかページ移動ができません。
ちなみに対象ページは↓です
URLリンク(kakaku.com)
485:デフォルトの名無しさん
19/02/25 19:16:52.45 fA1JAyF+0.net
>>476
kakaku.comなら「この検索結果を友達に知らせる」から直リンの情報が得られて、そこにページ番号も書かれてるからVBAだけで全データを取得できる
486:デフォルトの名無しさん
19/02/25 19:23:27.43 v0J7eUlyx.net
javascriptでページ情報を適当な外部ファイルにダンプして後でvbaでまとめて読み込めば良いだけでは?
487:デフォルトの名無しさん
19/02/25 19:42:45.75 RXoXH9qp0.net
変なページはキーボードマクロでやったほうが手っ取り早い場合も
488:デフォルトの名無しさん
19/02/25 19:47:45.89 +5CiRMIi0.net
>>477
こんな方法があったんですね!
ありがとうございます
getの形で見ることができるんですね
これならfor文でまわせそうです
>>478
javascriptの知識がvbaの知識より薄くてできません・・・
>>479
その方法もありですね
勉強になります
ありがとうございます
489:デフォルトの名無しさん
19/02/25 19:50:39.60 lqq1zerAa.net
for i = 0 to 10
ie.navigate "javascript: page(" & i & ")"
vba_code_here()
next
490:デフォルトの名無しさん
19/02/25 20:05:06.80 +5CiRMIi0.net
>>481
これでもいけますね!
ありがとうございます
自分でも試してたつもりだったんですが&の端がシングルクオーテーションだったからだめだったんだと思います。
これでもネストできそうです。ありがとうございます。
491:デフォルトの名無しさん
19/02/25 22:06:28.97 U7AKD+aj0.net
フォームに張り付けたMediaPlayerプレイヤーのコントロールのプロパティが勝手に変わる謎のエラーが頻発。
どうもフォームのサイズを変更するAPIがイタズラしているらしい。
こまかく切っていってようやくまさかの原因が解ったが対処方法わからずに対処療法してしまったがそれでも半日あまりを費やした。
よくわからないサンプルコード使うと謎のエラーが出てハマることを覚えた。
プログラマーってすごいな、これ毎日やってたらほんと禿げるわ。
492:デフォルトの名無しさん
19/02/25 22:14:43.73 RXoXH9qp0.net
>>483
>よくわからないサンプルコード使うと謎のエラーが出てハマることを覚えた。
これやると一番時間を無駄にする
・サンプルコードをざっと眺めて全体の流れを把握
・APIの仕様をしっかり読む
・一からテストコードを書く
・APIもう一回読み直しながら、もう少し詳細に作り直し
・本番環境で書く
こんな感じ。仕様を把握してから書いたほうが絶対に早い
493:デフォルトの名無しさん
19/02/25 22:46:07.98 TP8zPbuZ0.net
>>448
オーバーロードってあったっけ?それに、ジェネリクスがないから全部の定義されてる型について生成しなきゃいけないから地獄なんだよ!リテラルで配列を生成できたらいちいちDimしなくてもいい
494:デフォルトの名無しさん
19/02/25 22:51:30.74 TP8zPbuZ0.net
ちなみに、望むシグニチャーはこんな感じ
' T = Generic
Public Function ArrayOf(/* vararg */ element As T) As Array<T>
どうせVBAは浮世離れしすぎてて書けないけどな!
495:デフォルトの名無しさん
19/02/25 23:00:26.05 F8HPsJ9/0.net
ジェネリックはないがヴァリアント型つかえば良いのだよ
無いものねだりしてもしょうがない
問題解決のためにあるものを使うだけ
496:デフォルトの名無しさん
19/02/26 06:28:56.69 QryMFy3y0.net
>>429
これ。面白いな。試していないが、頭から見て行ってまずForが出て来るのにForがないって言われるの?w
VBAも構文を修正するのはいろいろと問題があるだろうけど、こういうペリフェラルな部分では改良できるところは
いくらでも残ってるよねえ
497:デフォルトの名無しさん
19/02/26 06:39:06.54 QryMFy3y0.net
構文チェックくらいなら、どっかサードパーティが作ってアドオンとか出来ないのかな
xlsファイルの中からプログラム文ってテキスト抽出って出来ないんだっけ
498:デフォルトの名無しさん
19/02/26 06:56:12.34 Dl2cSn2NM.net
>>488
If~Thenでブロック作るからNext出て来たらForがないと見なされる
C言語とかはEnd IfとNextの両方が } なので発生しないけどイメージとしては
for(i = 0; i <= 10; i++)
if(true){
next
}
みたいな感じになってる
499:デフォルトの名無しさん
19/02/26 07:22:50.54 Dl2cSn2NM.net
>>489
やれるやれないという意味ならやれる
そもそも*.basとか*.clsとかにエクスポートしたらテキストファイルだし
セキュリティの設定はいるけどCOM経由ならそんなに難しくない
ただ>>429みたいなケースでわかりやすいメッセージを出すのは思ったより難しい
500:デフォルトの名無しさん
19/02/26 07:28:56.02 wxY2HVgtM.net
>>487の言うとおりだ
生成もジェネリックに出来ないが使う方の関数だってジェネリックは出来ない。
つまりVariant を避けてると型別定義地獄になるって事だ
501:デフォルトの名無しさん
19/02/26 12:32:40.78 5MxkS3P70.net
>>476-482
wget は簡易クローラーだから、これで複数ページをダウンロードすれば?
その後、vba で処理すれば?
まあ、適度に時間をおきながら、アクセスしなよ。
頻繁にアクセスすると、営業妨害で逮捕されるかも
502:デフォルトの名無しさん
19/02/26 17:27:28.56 8+gQOZAja.net
win10(64bit)にoffice2013(32)入れたら動作おかしくなったので
新しいoffice買ってきた
503:デフォルトの名無しさん
19/02/26 21:19:16.14 bIfQynSTx.net
bitsadmin.exeやPowerShellを使う手もあるな
504:デフォルトの名無しさん
19/02/26 21:29:55.31 7VOH1icT0.net
Variantか…型安全をぶち壊してる気がするけど…
505:デフォルトの名無しさん
19/02/26 21:52:08.87 3hFiWozk0.net
>>496
いいんだよ
型安全な汎用プログラムを書けない時点で、個別のプログラムを型安全にする気は失せるというものだ
506:デフォルトの名無しさん
19/02/26 21:57:39.80 tGZ/aMnha.net
>>493
有料のRPAツールを使ってもダメなんでしょうか?
507:デフォルトの名無しさん
19/02/26 23:46:14.88 VNg9bOSA0.net
暗黙の型変換が拡大縮小の両方に効く時点で型安全なんてあり得ないわけで
508:デフォルトの名無しさん
19/02/27 03:06:02.10 s/3R2a1B0.net
vbaで型安全ってなんのギャグだよ
Sub foo()
Dim bar As Long
bar = 1 & "0"
msgbox bar
End Sub
509:デフォルトの名無しさん
19/02/27 06:45:27.86 OKB4dgT5x.net
>>500
これって 1 & "0" のところが 1 + 0 と評価されて出力が 1 になるのか?
510:デフォルトの名無しさん
19/02/27 09:24:25.27 94mgNWr4H.net
数値を“”で括って連結させるって普通はやらないよな
もはやクレーマーの域
511:デフォルトの名無しさん
19/02/27 09:27:38.25 ev0DPtJU0.net
>>501
ならない。
---------------------------
Microsoft Excel
---------------------------
10
---------------------------
OK
---------------------------
512:デフォルトの名無しさん
19/02/27 10:08:05.65 TCTVEEoa0.net
>>502
アホはお前
513:デフォルトの名無しさん
19/02/27 10:14:24.05 94mgNWr4H.net
>>504
自己紹介かな?
514:デフォルトの名無しさん
19/02/27 10:21:18.29 TCTVEEoa0.net
>>505
本当、馬鹿は食いつきがいいな。エラーも起こさずに動くのが問題なんだよ。
馬鹿には難しいか?
515:デフォルトの名無しさん
19/02/27 10:48:04.11 hD6s3+cfM.net
&演算子が勝手に文字列に変換するのは利便性考えたらわかるし
Long型の変数に文字列代入する時に暗黙のキャストするのもわからなくはない
けど警告ぐらいは出してほしいね
516:デフォルトの名無しさん
19/02/27 10:48:12.18 94mgNWr4H.net
>>506
それはエラーであってほしいというお前の願望だろ
517:デフォルトの名無しさん
19/02/27 11:32:27.96 WN1Wln/+0.net
VBAにも当然、厳密な構文ルールは存在するだろう
数字 & 文字列は文字列にするってのがルールじゃね。 一度覚えたらそれでいい
518:デフォルトの名無しさん
19/02/27 11:45:10.68 K1qNq431M.net
& が + に解釈されたらたまったもんじゃない
519:デフォルトの名無しさん
19/02/27 12:38:47.93 JcvtiT+vd.net
>>497
Variantは意識して使う。
型安全も意識する。
当然、暗黙の型変換でどうなるのかも意識して組んでいれば、そうそう問題になることもあるまい。
520:デフォルトの名無しさん
19/02/27 12:41:38.23 JcvtiT+vd.net
どんな言語でもツボは有るわけでね。
押さえてコードを書けない奴がアホなだけだろ。
初めて触った初心者じゃあるまいし警告なんて全く必要無い。
521:デフォルトの名無しさん
19/02/27 13:03:51.61 aJqXXkY2d.net
>>509
代入先が数値だろ
522:デフォルトの名無しさん
19/02/27 13:08:23.01 OA+HeXxoM.net
同じマクロを使っている複数の文書があって、マクロの一部を修正したいんですが、
別ファイルのモジュール内の変更を行うマクロは VBA を使って書けますか?
または、別ファイルのモジュールを削除(開放)してインポートする形でも構いません。
実際はワードでやりたいことですがワードVBAスレがなさそうなのでこちらで質問しました。
Norm
523:al を書き換えて対応するというのはできない前提です。
524:デフォルトの名無しさん
19/02/27 13:17:59.19 aJqXXkY2d.net
>>514
スレ一覧よく見てみろ。そういういい加減で他人にすぐ聞くからできないことだらけなんだよ。
525:デフォルトの名無しさん
19/02/27 13:19:02.81 K1qNq431M.net
ByRef x As Variant
526:デフォルトの名無しさん
19/02/27 13:19:50.19 94mgNWr4H.net
>>514
書けるよ
527:デフォルトの名無しさん
19/02/27 14:41:22.10 +oDGw9vfM.net
>>503
Option Explicit付けてもエラーにならないのかな?
528:デフォルトの名無しさん
19/02/27 15:47:12.82 WN1Wln/+0.net
>>510
お前は何を言ってるんだ?
& は文字の連結子だろ。 だから、文字としての1と0を連結したんだよ
>>513
代入先は数値だな。 文字処理をしてそれがVariantだからそれから数値変換したんだな
文字処理が優先なんだろ