Excel VBA 質問スレ Part61at TECH
Excel VBA 質問スレ Part61 - 暇つぶし2ch200:デフォルトの名無しさん
19/05/11 21:36:03.53 pbKNvvnGa.net
質問です。
NumberFormatLocal = “yyyy””年””m””月””d””日””(aaa)”で書式の定義を変更しています。
NumberFormatLocal = ●“yyyy””年””m””月””d””日””(aaa)”
●の箇所に文字列を入れたいのですが”●”を入れるとエラーになります。解決方法はありますでしょうか?

201:デフォルトの名無しさん
19/05/11 21:40:16.93 C94O1bx/0.net
>>200
わからんけど、自動記録でやったものをコピペするとか。

202:デフォルトの名無しさん
19/05/11 21:46:39.70 VQwnSTgG0.net
マクロの記録取ってみたわ
ダブルコーテーションで括った中で、更にダブルコーテーションがいるっぽい
具体てt機にはこう
Selection.NumberFormatLocal = """あ""yyyy""年""m""月"""

203:デフォルトの名無しさん
19/05/11 21:46:58.83 pbKNvvnGa.net
>>201
解決しました。ありがとうございました。

204:デフォルトの名無しさん
19/05/12 02:13:17.21 anQ1bE+S0.net
もしかして、Access2016が入ってると、
Excel2013ではADO接続使えない?
Excel2013からAccess2016の参照で落ちるケースはググって見つけたけど、
ウチのはExcel2013からExcel2013で落ちる。

205:デフォルトの名無しさん
19/05/12 02:35:46.96 0u/cIV/f0.net
>>190
データとしてExcelを使う場合と、ドキュメントとしてExcelを使う場合とで、考え方がかわる。

206:デフォルトの名無しさん
19/05/12 08:45:07.80 OK9Y1i2P0.net
>>204
win下をdll検索して、複数見つかったらそれぞれ直接参照設定してみるとか
(単体で動いてるわけじゃない気もするから、期待薄かもしれんけど)

207:デフォルトの名無しさん
19/05/12 12:05:15.73 anQ1bE+S0.net
>>206
それもダメだったから、諦めてExcel2019買ったわ。
それだと普通に動いたから、
やっぱりExcel2013とAccess2016の組み合わせがダメだったみたい。
ありがとう。

208:デフォルトの名無しさん
19/05/12 16:17:36.32 UM6bazI+0.net
32ビット版だったとか?

209:デフォルトの名無しさん
19/05/12 17:19:48.24 anQ1bE+S0.net
>>208
Excel2013 ・・・ ADO接続OK
   ↓
Excel2013 + Access2016 ・・・ ここで突然落ちるようになる
   ↓
Excel2019 + Access2016 ・・・ 直った!
全部32bit。
本当は64bitにしたかったけど、ListViewとか、
一部使えなくなる機能があるので諦めた。

210:デフォルトの名無しさん
19/05/12 17:21:42.38 anQ1bE+S0.net
あ、Excel2013 + Access2016って、インストールの組み合わせ。
別に、Excel2013からAccess2016に接続しに行ったわけじゃない。
落ちたのは、Excel2013からExcel2013へのADO接続。

211:デフォルトの名無しさん
19/05/12 17:23:44.21 0u/cIV/f0.net
なんの話をしているのか他人にはさっぱりわからないw

212:デフォルトの名無しさん
19/05/12 18:10:56.69 w16fcO4J0.net
時刻がマイナスの場合
とは、if文でどうやってつくりますか?

213:デフォルトの名無しさん
19/05/12 18:20:18.19 O1RPDIWFM.net
>>212
マイナスの時刻など存在しない
If 1 = 2

214:デフォルトの名無しさん
19/05/12 18:23:52.94 w16fcO4J0.net
A-B=C
時刻の差のCがマイナス表示されるセルを
if文で
00:00:00
に直したいです

215:デフォルトの名無しさん
19/05/12 18:30:53.16 O1RPDIWFM.net
>>214
=TEXT(MAX(0, C), "hh:mm:ss")
VBAは要らん

216:デフォルトの名無しさん
19/05/12 18:33:52.80 w16fcO4J0.net
セルの設定ですね。
ありがとうございます。

217:デフォルトの名無しさん
19/05/12 20:06:16.73 0u/cIV/f0.net
プログラミングの初歩は大事なんだと思ったよ。
ある値のときは00時00分00秒にするという分岐を思いつかないんだから。

218:デフォルトの名無しさん
19/05/12 20:51:34.11 JDMVXB4ua.net
まあMIN/MAXを使って値をキャップするのは正統なプログラミングでは非常によく使われる方法だけど、
事務屋さんには意外と思いつかないかもね

219:デフォルトの名無しさん
19/05/12 21:54:23.80 UM6bazI+0.net
普通に時刻どうしで比較できるから、3分前とかそういうことかと思ってた

220:デフォルトの名無しさん
19/05/12 22:49:25.28 0u/cIV/f0.net
>>210
Office製品は基本的にバージョン違いを混在させられるようにはできていない。

221:デフォルトの名無しさん
19/05/13 07:47:02.77 J0xiSM4lM.net
>>220
そんなことはなくて条件満たせば使えるよ
URLリンク(www.microsoft.com)

222:デフォルトの名無しさん
19/05/13 09:04:58.38 bJahx30bM.net
>>219
時間と時刻

223:デフォルトの名無しさん
19/05/13 09:19:29.85 OGTR1ISy0.net
その前にいきなり時刻とか言い出した辺りでダメダメ。
人間が時刻と思ってるだけの可能性がある。
セルの書式や変数の型を元に説明しないのは、人間の目線で時刻と言ってる証拠。

224:デフォルトの名無しさん
19/05/13 13:56:52.37 p6Zrf1zY0.net
シャープで囲んでる人はちょっと

225:デフォルトの名無しさん
19/05/13 14:34:08.69 /2MppI/1M.net
VBAでは時刻と時間を Timeでずっとやり繰りしてたのに、c#で TimeSpan発見したときは叫んだわ

226:デフォルトの名無しさん
19/05/13 16:36:40.35 N0Eopnbu0.net
え?エクセルをADOでデータベースみたいに扱うこともできるの?

227:デフォルトの名無しさん
19/05/13 17:03:08.67 P7TvqqIDM.net
>>226
ちゃんと形式を整えておけば単純なSELECTなら使える
WHEREが機能するだけでOKってことならまあまあかな
JOINとかは当てにならないような気がする
DELETE, INSERT, UPDATE はもっと当てにならない

228:デフォルトの名無しさん
19/05/13 19:21:33.24 t89inGVt0.net
あてにならないってなんやねん

229:デフォルトの名無しさん
19/05/13 20:44:43.21 /95lNMvTM.net
>>228
他人だけど、ExcelのSQL操作はおまけ機能だから、標準SQLに対応してないから、やってみないとわからない。

230:デフォルトの名無しさん
19/05/13 21:00:39.75 N0Eopnbu0.net
まぁできちゃったらアクセスの立場ないわな

231:デフォルトの名無しさん
19/05/13 21:02:14.05 icbU5YOt0.net
SQL自体もう色々派閥が分かれすぎて

232:デフォルトの名無しさん
19/05/13 21:06:25.95 adbFFiEz0.net
>>229
馬鹿は死ねや
Accessのエンジンと同じだろ

233:デフォルトの名無しさん
19/05/13 21:10:27.82 /95lNMvTM.net
>>232
バージョンを気にしてくださいw

234:デフォルトの名無しさん
19/05/13 22:16:41.75 ErXZ/V3c0.net
>>226
出来るよ。
普通はやらないだろうけど、会社のPCにAccessが入ってないとか、
Accessは入ってるけど、事務のおばちゃんがExcelにしがみついて、
意地でも離さないとか、そういう状況で使える。
>>227
JOINは普通に使える。

235:デフォルトの名無しさん
19/05/13 22:42:40.28 ATfYCMP60.net
>>234
そうか、JOINも普通にできるのか...
「Excelもデータベースとして有効に使えるよね」なんて方向に行って欲しくない、という願望が
俺の心の中にバイアスを生んだようだ

236:デフォルトの名無しさん
19/05/13 23:05:59.93 RqskJpspx.net
というかPowerQueryやDAXでデータベース的な使い方が出来てしまうからな今のExcelは

237:デフォルトの名無しさん
19/05/13 23:39:26.70 N0Eopnbu0.net
エクセルでできるってすごい!
そこで疑問に思ったんですが以下のVBA書いてみましたが
Dim adoCn As Object
Dim adoRs As Object
Dim strSQL As String
Dim DBpath As String
DBpath = ThisWorkbook.Path
Set adoCn = CreateObject("ADODB.Connection")
Set adoRs = CreateObject("ADODB.Recordset")
adoCn.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & "Data Source=" & DBpath & "\SampleData.xlsx;"←①
strSQL = "select A,B,C from シート名 order by A desc" ←②
adoRs.Open strSQL, adoCn
*何か処理
adoRs.Close
adoCn.Close 'コネクションのクローズ
Set adoRs = Nothing 'オブジェクトの破棄
Set adoCn = Nothing
①について
プロバイダーとファイル指定の記述の仕方はあってますか?
②について
列の指定とfromの方法は?
教えてください<(_ _)>

238:デフォルトの名無しさん
19/05/13 23:43:46.08 4/CDP/BQ0.net
秀和システムでいいから、古本を買って読めよw
ちゃんとサンプルが書いてある。アマゾンの古本は激安だぞ。

239:デフォルトの名無しさん
19/05/13 23:45:48.17 N0Eopnbu0.net
エクセルをデータベースとして使う記述があるのがどの本なのかさっぱり・・・
できれば本教えてもらえませんか?

240:デフォルトの名無しさん
19/05/13 23:47:08.95 adbFFiEz0.net
>>233
馬鹿は死ね

241:デフォルトの名無しさん
19/05/13 23:49:20.76 4/CDP/BQ0.net
>>239
Google検索でもサンプルは山のようにあるぞ。

242:デフォルトの名無しさん
19/05/14 00:09:21.56 XEzOoRRL0.net
ちょっとググって見ます

243:デフォルトの名無しさん
19/05/14 00:15:14.20 a29jNOd40.net
>>237
何通りかあったと思うけど、
その書き方だと[Sheet1$]かな。
プロバイダーも、adoCn.Providerにも、adoCn.Openにも書ける。
ブック名をFromの後に書く方法もある。
組み合わせは忘れたけど、どこかで指定していれば、
別の部分では省略できる感じ。

244:デフォルトの名無しさん
19/05/14 05:07:41.34 XEzOoRRL0.net
>>243
なるほど、勉強になります

245:デフォルトの名無しさん
19/05/14 19:07:26.92 wEGsmpoqp.net
URLリンク(dotup.org)
東京・大阪・北海道の各出発時間・到着時間を黄色い部分に「sendkeysで」、「それぞれ東京・大阪・北海道の順序を守って」入力したいです
実際にsendkeysでキーを送るのはブラウザ上のフォームであり、東京の時刻入力→tabとenterをsendkeyしつつ次のページに移動→大阪を入力、という風に処理するため、順序等が変更できません
また入力するのが東京・大阪・北海道だけでないかもしれないので、記載がある行すべてというイメージでお願いします
excelスレでも質問してみてますが、vba専門スレがあることに気付かされたのでこちらでお世話になります

246:デフォルトの名無しさん
19/05/14 20:14:46.00 Bsz/IupB0.net
だから、Sendkeysはやめろって。
これはお手軽にその場だけデータを取りたい時なんかに使うけど、制御出来ないから普通は使うべきじゃない。

247:デフォルトの名無しさん
19/05/14 20:18:43.38 wEGsmpoqp.net
もちろんそうなんですが自分には IE操作は敷居が高くて、愚直も愚直にsendkeysしか手段が思いつかないもので・・何か代替案ございますか?

248:デフォルトの名無しさん
19/05/14 20:22:02.95 9TMbmfYm0.net
どう考えてもIE操作の方が敷居が低いんだが

249:デフォルトの名無しさん
19/05/14 20:23:00.65 9TMbmfYm0.net
inputに文字列入れるだけだろ?
ソース見てidだかclassだか取得してポイって入れるだけじゃん

250:デフォルトの名無しさん
19/05/14 20:25:50.88 wEGsmpoqp.net
それがよーわからんのです・・
とりあえずググってすぐ見つかるサイトで特に初心者にわかりやすい解説してるサイトでも教えていただけませんか?

251:デフォルトの名無しさん
19/05/14 21:33:16.75 wEGsmpoqp.net
IE操作で頑張ってみてるんですが、リンクオープンして開いた別窓を操作するにはまたhtmldocにobjIE.documentを代入して・・ってしないといけないんですか?

252:デフォルトの名無しさん
19/05/14 21:59:36.21 IyB4HHSk0.net
>>251
別窓にしちゃう(なっちゃう)とそのウィンドウを探して、html取ってくることが必要になるので、できるなら避ける。
IE VBA
でググれば、参考サイト出てくる。あとは応用しだい
IEでは F12で開くやつも有用
がんばれ

253:デフォルトの名無しさん
19/05/14 22:06:13.16 wEGsmpoqp.net
>>252
社内システムなので必ず別窓になっちゃう仕様です
htmlの取り方教えてもらえませんか?

254:デフォルトの名無しさん
19/05/14 22:31:09.98 a29jNOd40.net
>社内システムなので
多分、このスレ見てる全員ズコーだわ、そのオチ。
システム部門の人に聞いちゃダメなんかい。

255:デフォルトの名無しさん
19/05/14 22:36:33.89 s0Vi/y5R0.net
CreateObject("Shell.Application").Windows() から探す

256:デフォルトの名無しさん
19/05/16 11:39:56.68 a1IyAHl+r.net
excelマクロでのバージョン管理てどうすればいいん
言われるがままに集計マクロ作ったら担当者毎に持ってるマクロのバージョン違ってあの機能が無いとか特殊な状況でエラー出る→それ先月直しましたよ
が頻発してる

257:デフォルトの名無しさん
19/05/16 12:20:32.52 5BGNguvP0.net
>>256
サーバー上にマクロ専用のエクセルファイルを置いて、
個々に配っているファイルからはそのマクロを参照させる

258:デフォルトの名無しさん
19/05/16 12:51:40.47 YRbGgWK/M.net
>>257
基本それだが、ずっと掴んでるやつがいるとバグ修正や機能追加のときに困る

259:デフォルトの名無しさん
19/05/16 14:16:39.46 5BGNguvP0.net
>>258
読み取り専用にしてもダメか?

260:デフォルトの名無しさん
19/05/16 14:16:55.41 5BGNguvP0.net
もちろん自分が編集する時は読み取り専用解除ね

261:デフォルトの名無しさん
19/05/16 14:43:29.72 wWtnEH3A0.net
コード書く画面を
背景は黒に、文字は白に、する方法を教えれ

262:デフォルトの名無しさん
19/05/16 15:42:20.38 Z2BhGmok0.net
ツール -> オプション -> エディターの設定

263:デフォルトの名無しさん
19/05/16 16:12:18.52 BYfNVo3YM.net
>>256
OS起動したら、サーバからコピーしてくるバッチ等を走らせる
小さいならいちいちバージョン確認しなくてもよい

264:デフォルトの名無しさん
19/05/16 18:04:23.53 rNkkKl6PM.net
みんな一々シャットダウンするのか?
スケジュールでコピーだろ

265:デフォルトの名無しさん
19/05/16 18:58:39.63 5BGNguvP0.net
>>>261
これ
URLリンク(tonari-it.com)
ちなみに書くとこはVBEって言うから覚えておくと検索できて便利

266:デフォルトの名無しさん
19/05/16 19:18:23.52 UtWIeHx/p.net
マクロ終了時にマクロ開始から終了までにかかった時間が秒までメッセージボックスに表示するってできる?

267:デフォルトの名無しさん
19/05/16 19:18:36.52 rD+4K505M.net
>>264
個々人のローカルフォルダにxlam があってそれが定期的に書き換えられるって事?
他のブックがxlamを掴んでる最中でもできる?

268:デフォルトの名無しさん
19/05/16 19:23:31.84 UPwRXvuL0.net
>>266
できる

269:デフォルトの名無しさん
19/05/16 19:26:21.47 5BGNguvP0.net
>>266
楽勝
Sub foo()
開始 = Now
'処理
終了 = Now
MsgBox Format(終了 - 開始, "hh:mm:ss")
End Sub

270:デフォルトの名無しさん
19/05/16 19:26:44.10 5BGNguvP0.net
>>268
URL春だけでもいいから教えてあげたらw

271:デフォルトの名無しさん
19/05/16 19:31:25.53 UtWIeHx/p.net
>>268はなんとかookスレで最近流行りの流れだよw
>>269ありがとう!

272:デフォルトの名無しさん
19/05/16 20:10:17.30 rNkkKl6PM.net
>>267
掴んでたらスルー

273:デフォルトの名無しさん
19/05/16 22:17:19.76 aE3zz80C0.net
>>256
起動時に何らかのファイルを参照するようにしておいて、
参照出来たらそのままOK。
出来なかったら、新たにファイルをDLする仕組みにする。
で、更新させたい時は、わざと参照用ファイルを消しておく。

274:デフォルトの名無しさん
19/05/16 22:24:00.58 yzKWQsxd0.net
>>273
xlamを共有するならそこのWorkbook_Open にそういう処理を入れておけばいいでしょうね

275:デフォルトの名無しさん
19/05/16 23:04:51.54 kfbhC4dW0.net
>>256
最新バージョン書いたテキストかなんかを共有に置いといて、起動時に見に行ってそれより古かったら更新促す警告出すとか

276:デフォルトの名無しさん
19/05/17 02:52:09.97 gYF5enuVM.net
Excelの起動時、マクロを実行させる:Excel(エクセル)マクロ
URLリンク(www.excel.usefulhp.com)
で良いだろ

277:デフォルトの名無しさん
19/05/17 09:22:35.60 YDbG3YPmr.net
共有パス見て実行とか大変そう面倒そうて主観があったけども
Application.Run "共有のパス!マクロ名 "
の1行でいけちゃうもんなのか…?
とりあえず試してみる
すでに誰かが開いてる?とか参照できないときの対処も色々試してみるありがとう

278:デフォルトの名無しさん
19/05/17 09:26:03.52 PC2o5teB0.net
>>277
そっちは使わないかな
俺はボタンにマクロの場所を登録する

279:デフォルトの名無しさん
19/05/17 09:26:30.66 PC2o5teB0.net
なんか日本語変だ
まぁいいか

280:デフォルトの名無しさん
19/05/17 12:25:15.46 cM5KCNydp.net
ちょっと筋外れるかもしれないけどvbeに行間なく詰めて書いたコードの選択範囲に1行ずつ改行入れるいい方法ない?

281:デフォルトの名無しさん
19/05/17 12:28:45.29 gxvYGXpT0.net
そんなのできない。サクラエディタで置換して貼り付けろ

282:デフォルトの名無しさん
19/05/17 22:00:27.88 BHkVW2uG0.net
>>280
VBEを操作すればできると思う。面倒だけど
まあ>>281の方法が合理的だろうな

283:デフォルトの名無しさん
19/05/18 00:21:37.50 qrQ2t1Xp0.net
>>280
改行コードを改行コード+改行コードで置換

284:デフォルトの名無しさん
19/05/18 00:55:20.52 pDLl57eM0.net
コードウィンドウ内の改行はCRLFじゃなくてLFだった筈。
そんなに難しくない。
でもこれが動く設定はマクロウィルスも動くから危険だよ。
Sub test()
Dim strCode As String
Dim stRW As Long
Dim stCL As Long
Dim edRW As Long
Dim edCL As Long
With Application.VBE.ActiveCodePane
.GetSelection stRW, stCL, edRW, edCL
strCode = .CodeModule.Lines(stRW, edRW - stRW + 1)
.CodeModule.DeleteLines stRW, edRW - stRW + 1
.CodeModule.InsertLines stRW, Replace(strCode, vbLf, vbLf & vbLf)
End With
End Sub

285:デフォルトの名無しさん
19/05/18 19:27:39.15 4RzeW/b40.net
専用のメソッドがあるのが凄いわ。
何を想定して用意してあるんだろう?
プログラムがプログラムを書き直すAIにでも使うのか?

286:デフォルトの名無しさん
19/05/18 20:16:07.59 8gQadrhx0.net
Application.VBE.ActiveCodePane
こんなの合ったのか
PaneはPanelかと思ったら、ペインの事なのね

287:デフォルトの名無しさん
19/05/18 20:29:02.38 P5JmHxRDM.net
VBEを拡張するためのオブジェクト群が用意されてるんだよね

288:デフォルトの名無しさん
19/05/19 09:22:38.02 MCPGuHEx0.net
Excel4マクロは自己書き換え自由だったから
機能的に負けるわけにはいかなかったんじゃね?

289:デフォルトの名無しさん
19/05/19 11:43:42.11 1xMNIuy/x.net
配布済マクロの修正パッチとかで大量のファイルや行を一括修正したいときは便利

290:デフォルトの名無しさん
19/05/19 12:03:05.34 igxNvdy7a.net
単価の低そうな涙ぐましい仕事だな

291:デフォルトの名無しさん
19/05/19 12:39:30.70 gILK5dpZ0.net
マクロ4はできる人がいない+やりたくないから単価超高いぞ
で、単価高くしても足が出る・・・

292:デフォルトの名無しさん
19/05/21 19:13:05.44 7gg6L6p3p.net
実行から終了まで数分かかるマクロを途中で止める方法ないですか?f4押したら「処理を止めました」のメッセージボックスとともに停止するとか。

293:デフォルトの名無しさん
19/05/21 19:31:11.94 OX+uPiO40.net
Break
ESC

294:デフォルトの名無しさん
19/05/21 19:37:07.71 K+4dE9j10.net
ループが長いならDoEvent入れておいて
msgbox "終了します"とendだけ書いたのを起動できるボタンどっかに置いとけばいい

295:284
19/05/21 20:04:23.19 MD1oUmkY0.net
ESCやBreakで止まるなら良いけど、それで止まらない処理ならウィンドウESC押しながらタスクバー上でマウスでウィンドウの切り替えをすると止まる。
どっかのブログで見て知ったけど役に立ってる。

296:デフォルトの名無しさん
19/05/21 21:15:28.57 QvaiZxJv0.net
こうする
URLリンク(youtu.be)

297:デフォルトの名無しさん
19/05/21 21:30:20.69 7gg6L6p3p.net
ほー
明日試してみます

298:デフォルトの名無しさん
19/05/21 22:08:13.75 R92gi7e40.net
2009/12/16に公開って何だよ。
20年くらい前に見たぞそれ。

299:デフォルトの名無しさん
19/05/22 06:58:44.20 SD95iW5CM.net
>>298
映像はどうみても20年以上前だな
的確な対応で現在も使える

300:デフォルトの名無しさん
19/05/22 09:27:28.15 ztZYN21m0.net
セルの値を数式に代入って無理でしょうか?
たとえばA1セルに乱数が入ってた場合に
どっかのセルに =A2-乱数 という数式を代入したい感じです

301:デフォルトの名無しさん
19/05/22 09:41:17.90 5+y7OppMM.net
=A2-A1

302:デフォルトの名無しさん
19/05/22 09:43:43.65 ogyeLG/uM.net
演算あり値コピーの話?

303:デフォルトの名無しさん
19/05/22 09:52:11.18 AHnUJ8Jk0.net
いやセル番地じゃなくて値を数式に代入したい感じです
たとえばA1セルに2,134という数字が入ってた場合に
=A2-2,134 という数式をどっかのセルに代入
A1セルが387だとしたら
=A2-387
説明下手糞で申し訳ないです

304:デフォルトの名無しさん
19/05/22 09:54:20.78 hC9fKDDe0.net
>>300
書いている意味がよくわからんど
セルに式でも値でも代入できる
ただ、乱数は曲者で常に変わるから
もう少しやりたいことを具体的に書き込もう

305:デフォルトの名無しさん
19/05/22 10:00:56.85 hC9fKDDe0.net
>>303
乱数は曲者で
A1セルが387だとしたら
=A2-387
ほかのセルに「=A2-387」を入れた時点でA1セルは変わるから
もう少し何をしたいのか書くように

306:デフォルトの名無しさん
19/05/22 11:59:27.46 zi+TqRd2r.net
そもそも数式はスレ違いだろ
VBA関係ないならどっかエクセルの使い方の板かスレかさがせ

307:デフォルトの名無しさん
19/05/22 13:17:58.06 /GezpU1zp.net
>>305
A1セルの乱数結果が現時点で387だとしたら
変数(仮にrとする)に、387を格納して
ほかのセル(仮にB1とする)に"=A2-r(中身387)"を入力したいって事?
それなら確かに関数じゃできないよね

308:284
19/05/22 13:58:22.19 WDej9GuM0.net
>>303
Range("C3").Value="=A2-" & Range("A1").Value
じゃ駄目?

309:デフォルトの名無しさん
19/05/22 16:05:46.41 hC9fKDDe0.net
>>307
それに意味あると思えない、乱数なんてふつうは仕事に使わない
例えば、学校の先生あたりが、引き算足し算などの問題を自動的に作りたいとか
であれば、A列に乱数1の結果をB列に乱数2の結果を
C列に計算式を、D列に回答をで別シートなどで問題文を作る
このぐらいだな

310:デフォルトの名無しさん
19/05/22 18:12:45.70 j7jZt3jJM.net
説明下手糞ってレベルじゃねぇぞ…

311:デフォルトの名無しさん
19/05/22 18:48:51.39 RRuRLAJCM.net
>>309
ちょっとしたシミュレーションで使うかもしれない。(Excelでやるとは言ってない)
>>302じゃダメなの?

312:デフォルトの名無しさん
19/05/22 19:16:53.47 CZzIGWUTM.net
>>311
ちょっとしたシミュレーション・・無いだろ
この文書力だとセルに入れたい式って
計算式の文字列かもしれん

313:デフォルトの名無しさん
19/05/22 22:59:24.50 bxcYYOqD0.net
もうあれだ。
ここは、何の用途に使うのか当たられたやつが優勝スレにしよう。

314:デフォルトの名無しさん
19/05/22 23:13:17.16 K7mhmRd90.net
完全乱数を使って円周率の計算をする

315:デフォルトの名無しさん
19/05/23 07:43:57.81 mLR+BkfhM.net
別に用途は何でもいいさ
興味ゼロってわけじゃないけど

316:デフォルトの名無しさん
19/05/23 10:22:05.81 WDXUv9KM0.net
こっちで作って欲しいと言われたものをつくってると
そんなもの作られたら困る
楽になって人が減らされると困る、と古参がちくちく
この古参、自分の作業を楽にしたい時には
これがもう偉そうな態度で、「作らせてやる」とでも言わんばかりに頼んでくる
どうしたいんよもう
っていうことないっすか
もう面倒なんで職場で作るのやめようかな
すんません落書きしちゃって

317:デフォルトの名無しさん
19/05/23 10:56:07.55 cSCM+dO10.net
厚労省で配布されている
URLリンク(www.mhlw.go.jp)
にある
URLリンク(www.mhlw.go.jp)
なんだけど、内容は単純で
1件いくらの検査があって、件数を入力すれば請求書が作成されるというもの
1シート=1自治体なので、複数の自治体へ請求する場合は、ユーザーがシートコピーして作る
VBAで各シートを集計して総括表に転写する
なんだけど、VBAみて
変数が多すぎてコーディング中に間違えても気づかんだろってのと
引っ張ってくるセルをConstで決め打ちしてるけど
これ後のメンテナンスでセル一個挿入することになったら修正大変やん と思いました。
というか、エラーメッセージの所で間違えて
行を表示すべきところを列表示しているけど
これこそ変数多すぎて分かりにくくした事が原因だと思います。
じゃあどうする、と言われたらみなさんならどうしますか?
同じ形の複数の2次元の表を合計するだけなんだから
スタート地点とゴール地点決めてやって
後はずらしていけばいいやんと思うのですが
後、小数とか負の値ぶっこんでも動作するのはモヤモヤするんだけど
まぁこの辺やりだしたらキリがないので使わせる相手によってどうするかは変えますかね

318:デフォルトの名無しさん
19/05/23 11:43:15.47 mLR+BkfhM.net
>>316
義務教育でプログラミングを扱うようになって、自分の仕事くらい自分でプログラミングできないようでは大変な事になるよ、
と教えてやればいい。
もしかしたら「手下にプログラミングさせればいい」と勘違いするかも知れないが、
それでは通用しないよと言ってやろう。
こういう話もあるし
URLリンク(lite.blogos.com)

319:デフォルトの名無しさん
19/05/23 16:11:36.77 hFcQqqxb0.net
>>316
ただ単純に業務全体を見ずに作るから役に立たないんだよ
業務に対して目的と効果を文書ではっきり示せば古参の意見を聞かなくていい

320:デフォルトの名無しさん
19/05/23 16:13:59.49 X/3FpVKz0.net
>>316
その古参の上司に報告しろ

321:デフォルトの名無しさん
19/05/23 16:14:38.98 hFcQqqxb0.net
>>317
すまん、リンク先を読む気もしない

322:デフォルトの名無しさん
19/05/23 17:56:30.55 pyUsEGpsM.net
>>317
べき論の先には「VBAを使うのをやめるべき」という結論しかないから不毛よ
俺ならどうするか?下請けに丸投げして終わりだよ

323:
19/05/23 19:35:05.76 QGT5qlDg0.net
>>318
>義務教育でプログラミングを扱うようになって、自分の仕事くらい自分でプログラミングできないようでは大変な事になるよ
脅かすことでプログラミングができるようになるとはおもいませんが…
プログラミングって極めて創造的な作業ではないでしょうか、似たようなものは数学の証明問題だと思いますが証明問題を脅かして解けるようになるとは思えません

324:デフォルトの名無しさん
19/05/23 20:39:50.63 X/3FpVKz0.net
機械学習やweb系ならともかく、
VBAレベルなら極めて事務的な仕事だろう。どこにも創造性なんて無いよ
ルーチンワークを自動化させてるだけ

325:
19/05/23 20:58:31.34 QGT5qlDg0.net
>>324
でもそのルーチンワークを実際に記述するとなると一本道というわけにはいかないでしょう?
論理的な一貫性を維持しながらしたいことを記述するのは、いわれているほどやさしい仕事ではない

326:デフォルトの名無しさん
19/05/23 21:06:10.14 X/3FpVKz0.net
>>325
一本道だよ、全然難しくない
強いて言えば例外を先に全部列挙した上でシステムに放り込むという順序の変更がある程度
面倒なのは仕様変更と、使いにくいというオバハンの嬌声。オバハンにalt+F8は覚えさせたけど、まぁそれぐらい

327:デフォルトの名無しさん
19/05/23 22:12:48.96 0Fgm70+GM.net
まあ、自己満足で終わるなら簡単だな
おばはんにも満足いくように作るんだよ

328:デフォルトの名無しさん
19/05/23 22:27:50.56 49rcJhkB0.net
>>317
コンスト過ぎてワロタ。

329:デフォルトの名無しさん
19/05/23 22:55:08.55 EGX4zlJj0.net
>>323
それもそうだが、その老害を大人しく
させることができれば上出来と考えた

330:デフォルトの名無しさん
19/05/24 01:42:55.95 9kKOGm+S0.net
Excel2016にてpersonal.xlsbに「保存せず閉じて開き直すマクロ」を作ったところ挙動が変です
Sub ReOpen()
  Dim wb As Workbook
  Dim path As String
  Set wb = ActiveWorkbook
  path = wb.fullName
  '※1
  If MsgBox("本当に変更を取り消しますか?", vbYesNo) <> vbYes
    Exit Sub
  End If
  wb.Close(False)
  Application.Wait([Now() + "00:00:01"])
  '※2
  Workbooks.Open(path)
End Sub
このマクロ自体は動くのですが、※1のIf~EndIfを消すと※2のOpen実行直後にExcelが通知無く落ちます
また、※1※2を両方消してマクロ実行した後、手動でブックを開き直すとやっぱりExcelが落ちます
対象のブックはフォームやマクロを含んだ3MB程度のxlsmファイルです
MsgBox出さないだけでなぜ不安定になるのか、思いつく原因を教えて頂けると幸いです

331:デフォルトの名無しさん
19/05/24 01:44:27.87 9kKOGm+S0.net
あ、Ifの末尾のThen忘れたので脳内で補完してください

332:デフォルトの名無しさん
19/05/24 06:40:29.33 /lvzTPqGM.net
>>331
ハイ イイエ が逆なのも利用者が自動変換するんですね

333:デフォルトの名無しさん
19/05/24 06:54:20.73 /lvzTPqGM.net
>>332
すまん、継続がキャンセルか

334:デフォルトの名無しさん
19/05/24 09:59:52.88 RAYiE+wA0.net
>>330
2019で試したけど落ちなかった
> Application.Wait([Now() + "00:00:01"])
これを抜いても同じ
カンで答えると、再計算が邪魔してるような気がする
・一度再計算や描画、イベントを切ってみてはどうかな
Application.EnableEvents = False
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
・あとはこの部分のウェイトをもう少し長くする
>Application.Wait([Now() + "00:00:01"])
・まっさらなブックで試してみる

335:デフォルトの名無しさん
19/05/25 07:54:51.56 TRopVMeK0.net
アドインって、ファイルを閉じたら、
一緒に閉じられるものだと思ってたけど、
VBA実行中は残るということか。
一緒に閉じられたら、途中で止まっちゃうからな。

336:デフォルトの名無しさん
19/05/25 08:55:38.15 nkVbmNSl0.net
vba実行中というかずっと残るっぽい

337:デフォルトの名無しさん
19/05/25 09:55:42.63 wPp02VNQ0.net
エクセルの機能に追加してるからな
アドイン使ったファイルをアドインがないエクセルで編集すると壊れるよね

338:デフォルトの名無しさん
19/05/25 10:07:50.37 wPp02VNQ0.net
>>330
経験上納得できない動作をするときは何か見落としているところがある
step実行で場所特定して、各変数の値が壊れてないか確認
イミディエイト画面で入力してみるなど

339:デフォルトの名無しさん
19/05/25 10:14:01.11 D2XIJyZK0.net
Excelに限って言えば、Excel自体に変な仕様が多い
これが男を惑わせる

340:デフォルトの名無しさん
19/05/26 04:10:46.96 xQGdFtWrM.net
>>334
元に戻さないアホがいると大迷惑になるな
>>335
アドインはExcelに組み込むよね
>>339
配列数式なんか使うとブーイングになるよな

341:デフォルトの名無しさん
19/05/26 15:23:19.13 /taseRUt0.net
以下の状態だとB1~B3は全て1:1048576と表示されてしまいます
Cells.SpecialCellsをRange("A1").SpecialCellsに変更した場合はB1~B3は全てA1と表示されます
Ctrl + Endで選択されるセルの番地を文字列として取得するにはどうすればいいですか?
  A    B
1 Sheet1 =fn(A1)
2 Sheet2 =fn(A2)
3 Sheet3 =fn(A3)
Public Function fn(sSheetName As String) As String
fn = ActiveWorkbook.Worksheets(sSheetName).Cells.SpecialCells(xlCellTypeLastCell).Address(False, False)
End Function

342:デフォルトの名無しさん
19/05/26 15:41:58.63 /taseRUt0.net
関数呼び出しではなくマクロやボタンクリックでなら問題なかったので
そっちの方法に切り替えますすみません

343:デフォルトの名無しさん
19/05/27 06:52:50.90 lha2yOvQp.net
入力項目を複数用意したinputboxって作れますか?

344:デフォルトの名無しさん
19/05/27 07:55:59.33 6csejWaN0.net
>>343
どんなものを考えているんだ

345:デフォルトの名無しさん
19/05/27 08:12:50.88 lha2yOvQp.net
>>343
ごめん入力フォームじゃなくていいかも
最終的にやりたいことは、以下のボタン等が設置されたユーザーフォームを作ることです(他の要素も考えたら普通にinput boxでは無理と気づきました)
・AUTO openで開く
・押すと特定セルに文字が入力されるボタンを複数設置する
・カレンダーを設置する
・押すと印刷処理を行いつつファイルを上書き保存し閉じるボタンを設置する

346:デフォルトの名無しさん
19/05/27 08:30:52.72 jh6nOFVKM.net
>>345
こんな特殊なものAUTO openでやるって非常識だな
シートのマクロで十分だろてかマクロは印刷して保存だけでいいだろ
それも自動記録でも十分

347:デフォルトの名無しさん
19/05/27 08:37:02.21 jh6nOFVKM.net
Excelの勉強不足だろ

348:デフォルトの名無しさん
19/05/27 08:47:00.50 6csejWaN0.net
>>345
それユーザーフォームにする必要がないような
ユーザーフォーム超めんどいから止めたほうがいいよ
あと、カレンダーはデイトピッカーと言う

349:デフォルトの名無しさん
19/05/27 09:45:56.73 W0zr6KdF0.net
この程度の理解力だとカレンダーが必要かもわからない
カレンダーなんか別にシートでもできるけど、どこまで使うかがわからないから
最適な解もわからない
入力をシートに反映するなんて普通にセルを参照すればいいだけ
ExcelもVBAも1%以下の理解で動作仕様を描くのではなく結果で何をしたいかを描くべき
これでも少しおだててるが

350:デフォルトの名無しさん
19/05/27 10:37:56.08 6csejWaN0.net
おだてるの意味間違えてるよ。

351:デフォルトの名無しさん
19/05/27 10:41:41.92 W0zr6KdF0.net
>>350
いや~そうでもないよ
理解力は両方とも0.1%~0.01%程度と思ってたから

352:デフォルトの名無しさん
19/05/27 11:25:38.71 bVlhmZqp0.net
てか、みんなが
>>345←この説明で全容を理解できてるのがすごいとおもったけど
いろんな意味に解釈できそうで、おれにはそのうちの一つには絞りきれないんだけど

353:デフォルトの名無しさん
19/05/27 11:44:36.09 dknccbkiM.net
>>352
教えたい人種の大半は問題の表層を自分の得意分野に転換して持論を得意気に展開してるだけ。
質問者の問題の背景に寄り添って解決を計ろうとする者は僅か。

354:デフォルトの名無しさん
19/05/27 13:50:33.03 6csejWaN0.net
>>352
どういうパターンであれ、大体ロクでも無い物だという判定ぐらいなら可能

355:デフォルトの名無しさん
19/05/27 14:00:43.29 zUYqf9yC0.net
>>345
ここの人達はマウント取りたいだけで実際はあまりスキルが無い人が大半なので程々に聞いていた方が良い。
あなたの要望については疑問が1つ、可能だけどあなたのスキルから考えて技術的に難しい点が1つある。
疑問は、AutoOpenで開いて、閉じるボタンで保存終了するのならExcelで作る必要は無いのでは?という疑問。
普通にC#辺りで作った方が適してると思う。この後に述べるけど、カレンダーの件もC#等の方が簡単。
技術的に難しいのはカレンダーの実現。
サブクラスとWin32の知識が無いと難しい。
後々を考えると汎用的にクラス作った方が良いからそういう技術も必要。
もっとも、ファイル追加とか自作するとかで良ければスキルが無くても出来るともいえる。

356:デフォルトの名無しさん
19/05/27 14:36:42.16 dknccbkiM.net
>>355
この人はマウント取りたいだけで実際はあまりスキルが無い人なので程々に聞いていた方が良い。

357:デフォルトの名無しさん
19/05/27 14:38:46.48 YnNlAtYud.net
>>356
そうくると思ったw

358:デフォルトの名無しさん
19/05/27 14:55:28.65 W0zr6KdF0.net
>>355
具体的に簡単にできる方法を説明してやれよ

359:デフォルトの名無しさん
19/05/27 14:59:26.84 6csejWaN0.net
>>358
まだ出せない
要件定義ができていないので、そもそもどういう設計が最適かも分からない
現状のまま作るのはめんどくさすぎる
具体的に言うとデイトピッカー、お前だ

360:デフォルトの名無しさん
19/05/27 15:11:18.55 W0zr6KdF0.net
>>359
要件定義・・?この理解力だと
当然仕事に対する理解力もないってことだよ

361:デフォルトの名無しさん
19/05/27 15:14:09.75 6csejWaN0.net
>>360
そこを何とかするのが面白いんじゃないの
マウント取りたいならハエやカエル相手にしてればいいだけだしね

362:デフォルトの名無しさん
19/05/27 15:29:12.90 W0zr6KdF0.net
>>361
だったら適当にすれば(笑)
出来ることを安易に提案することの影響を考えろよ
例えば、自動計算を止める
こんなのそのままにされたら困るほかの人いるだろ
でも単にONとOFFじゃあだめなんだよ、直前を記録して戻す
また、エラーや中止でも戻さないとな

363:デフォルトの名無しさん
19/05/27 15:39:29.96 W0zr6KdF0.net
>>361
きみはハエやカエル相手にして面白がってる
引きこもりさんってことね

364:デフォルトの名無しさん
19/05/27 15:42:22.97 6csejWaN0.net
>>362>>363
韓国人?

365:デフォルトの名無しさん
19/05/27 15:42:59.47 6csejWaN0.net
おだてるの意味もわかってないみたいだし、韓国の方でしたか
そりゃ話も合わないな

366:デフォルトの名無しさん
19/05/27 15:44:13.29 W0zr6KdF0.net
>>364
きみはハエかカエル?

367:デフォルトの名無しさん
19/05/27 15:45:54.11 W0zr6KdF0.net
>>365
ハエかカエル?
しかたないな

368:デフォルトの名無しさん
19/05/27 15:53:54.48 6csejWaN0.net
おだてる・・・w

369:デフォルトの名無しさん
19/05/27 16:04:29.34 6csejWaN0.net
これ以外の高速化ってありますか?
URLリンク(15g.jp)

370:デフォルトの名無しさん
19/05/27 16:27:23.36 aE9KPqY2M.net
>>369
これで問題ある場合はループしてるロジックが悪いか
ネットアクセスではありませんか?

371:デフォルトの名無しさん
19/05/27 16:42:48.59 6csejWaN0.net
>>370
運用方法が急に変わりまして・・
毎日 100ループ→毎時間 20000ループ
他の高速化が無いものかな、と
特になければ諦めてロジック組み直します

372:デフォルトの名無しさん
19/05/27 16:43:14.09 2J++TcAHM.net
再描画を止めるのは好かんな

373:デフォルトの名無しさん
19/05/27 17:19:36.20 aE9KPqY2M.net
>>371
セルへのアクセスを減らし
変数テーブルで処理をするぐらいかな簡単なのは

374:デフォルトの名無しさん
19/05/27 17:53:10.57 aE9KPqY2M.net
変更のないセルはかきかえない
変数の型をこていするかな

375:デフォルトの名無しさん
19/05/27 20:18:12.39 28fQIolrF.net
>>369
完全に嘘。
そもそも、それなりに書ける奴ならこの手法では速くならない。

376:デフォルトの名無しさん
19/05/27 20:19:14.57 28fQIolrF.net
逆に、これで格段に速くなったら恥ずかしいと思うべきだ。

377:デフォルトの名無しさん
19/05/27 20:29:10.36 eWpgS1rnF.net
高速化については下記が参考になる。
URLリンク(excel-ubara.com)

378:デフォルトの名無しさん
19/05/27 21:03:48.67 TIEuQB3m0.net
>>345
できるけど、一番最後の処理が事故を起こしそうだから1クッション置いた方がいいかも

379:デフォルトの名無しさん
19/05/27 21:13:42.01 Soi68xiZ0.net
セルというかシートは使わない
データ保存には外部バイナリファイルを読み書きする

380:デフォルトの名無しさん
19/05/27 21:16:23.22 TIEuQB3m0.net
>>369
これは描画を抑制するからその分の時間がかからなくなるというだけなので、表示に因らない処理の速度アップはまた別だよ

381:デフォルトの名無しさん
19/05/27 22:07:18.66 9GzIJnKt0.net
何でユーザーフォームを使うのかって?
シートに書くより格好いいからに決まってるじゃんwwwww
いや、わりとマジでそんなもんだと思いますけど。
だって、ユーザーフォームじゃなきゃ再現できないようなものって、
普通の事務処理でそんなに無いでしょ。

382:デフォルトの名無しさん
19/05/28 01:04:45.98 Rr62XR8Vx.net
ワークシートのイベントに重めの処理を書いている場合、シート側のイベントを避けるためユーザーフォームで出入力制御や演算を処理させることはある

383:デフォルトの名無しさん
19/05/28 08:43:02.61 8P1bQTIM0.net
入力のしやすさとかフォームの方が良い場合もあるし、ユーザーインターフェイスとしてはフォームの方が優れている。
Excel使わずにメモ帳とCSVで事足りるってのと同じような考えの人がいるな。

384:デフォルトの名無しさん
19/05/28 09:44:28.89 CE2aKfrCH.net
初心者レベルの知識で長いことVBAいじってる者なんだが、
functionプロシージャって使わなくない?
普通のsubしか使ったことない
どんな時に便利なの?

385:デフォルトの名無しさん
19/05/28 09:47:42.25 rhAlx8Ij0.net
>>384
値を返す時。便利というか必須。=sum()で値が返らなかった時の事を考えてみると良い
むしろfunctionが普通なのだ
vbaの場合、ワークシート変更しておしまいってパターンが多いから恩恵を得にくいけどね

386:デフォルトの名無しさん
19/05/28 09:55:56.33 JWvhlEsx0.net
Findを利用したコードについて教えて下さい。
書籍、サイトで掲載されていたコードを利用し、少し変えたものです。
Findメソッドを使ってC列の”たろう”を検索します。
探し出したら、A~C列の文字列をE列に結果を返すように作り替えてみましたが、結果がE1~G1に上書きされてしまいます。
Cells(Rows,count を理解しきれていない、11行目のCells(i,”E”)の部分も理解していないと感じます。
どのように違うのか、ご指導お願いします。

ワークシートはこんなかんじ E列からG列は実行後の結果をイメージしたものです
  A  B   C   D  E    F  G
1 日付 売上 担当者    000  AAA たろう
2 000 AAA たろう     333  DDD たろう
3 111 BBB はなこ
4 222 CCC たかし
5 333 DDD たろう
6 444 EEE はなこ
7 555 FFF くみこ

387:デフォルトの名無しさん
19/05/28 09:56:25.54 JWvhlEsx0.net
386のつづき

Sub Find()
Dim temp As Range, tempAddress As String, i As Long
With Range("A1").CurrentRegion.Resize(, 1).Offset(, 2)
Set temp = .Find(what:=“たろう”)
If Not temp Is Nothing Then
tempAddress = temp.Address
i = Cells(Rows.Count, "E").End(xlUp).Row
Do
temp.Offset(columnoffset:=-2).Resize(, 3).copy Cells(i, "E")
Set temp = .FindNext(temp)
Loop While temp.Address <> tempAddress
End If
End With
End Sub
Sub copy()
Range("A:G").Clear
Worksheets("template").Range("A1:C7").copy Destination:=Worksheets("Sheet1").Range("A1")
End Sub

388:デフォルトの名無しさん
19/05/28 10:10:54.71 CE2aKfrCH.net
>>385
うーん、値を返すのは分かるんだけど、わざわざsubから取り出す意味が分からんのよ
subの中に入れちゃえば良くない?
コードが長くなる時とか、他のプロシージャにも流用したい場合なんかにfunctionで別プロシージャにしとくと分かりやすいってこと?
そういやfunctionを関数みたいに使う場合もあると聞いたな

389:デフォルトの名無しさん
19/05/28 10:32:00.95 P/fMeUQp0.net
>>384
>>385意見に賛成だが少し付け加えます。
基本的にsubにしろfunctionにしろ長くだらだら作らない
出来るだけ意味のある汎用性のある処理はそのルーチンを呼び出すようにする
その時に値を返せるfunctionの方が圧倒的に有利
初心者は同じようなルーチンをコピペで増殖させるが、後々メンテナンスに困る
それらをライブラリーとして持つと自分の資産になるんだけどね、それが重要なんだよ

390:デフォルトの名無しさん
19/05/28 11:24:47.87 aRCJr/ZnM.net
>>384
ネタでしょ?
モドリッチがない方が便利だなんて、そんな訳ないじゃん

391:デフォルトの名無しさん
19/05/28 11:26:30.05 CE2aKfrCH.net
>>389
あーその説明で分かった ありがとう
たしかに今までは、動けばいいやで作ってたからコードが長くなってた
顧客コードから各データを検索する時なんか、
Cells(i,2).value=Range(Z:Z).Find(Cells(i,1)).Offset(0,5).Value
みたいなコードを10行とか書いてたわ

392:デフォルトの名無しさん
19/05/28 12:23:13.41 1q3vxt7ga.net
OutlookのVBAもここで可でしょうか?
違ったら誘導お願いします
上司へ「承認お願いします」と言った趣旨のメールを送った際、上司がボタン1つで承認する旨のメールが送れるようにしたいです
しかし複数いる上司全員にマクロの設定方法を教えるのは面倒です
私から送信するメール本文にマクロを組み込み、上司が受け取った際に本文にあるリンクを押せば(マクロを自分で設定していなくても)返信メールが自動作成されるような手法が取れればベストなのですが、そういったことは可能なのでしょうか?

393:デフォルトの名無しさん
19/05/28 12:47:38.41 i1bbppKtM.net
>>392
ウィルスメールの作成方法きいてる様なもんだなw

394:デフォルトの名無しさん
19/05/28 12:51:48.37 Z4r31YmpM.net
>>392
まずは社内でOLのセキュリティ設定がどうなのか。
ザルならやりようはいくつもあるが、ガチガチなら選択肢は少ない

395:デフォルトの名無しさん
19/05/28 13:44:15.47 P/fMeUQp0.net
>>392
まあ、バカ上司をサポートするのと
バカ上司の影響をサポートするのと
どちっがしたいんだ?

396:デフォルトの名無しさん
19/05/28 13:45:21.90 8P1bQTIM0.net
>>388
VBA初心者にありがちな意見だね。
プログラムを組む時の考え方が全く違う。
組める奴なら最初から構造的に考える。
動きゃ良いなどと考える奴はいない。

397:デフォルトの名無しさん
19/05/28 13:48:09.91 8P1bQTIM0.net
>>392
マクロでやらなくても承認ボタンを追加する機能があった筈だが。

398:デフォルトの名無しさん
19/05/28 13:50:35.37 i1bbppKtM.net
> VBA初心者にありがちな意見だね。
はい、きょうもマウント取りたい人が来ましたよ

399:デフォルトの名無しさん
19/05/28 14:01:27.19 8P1bQTIM0.net
>>391
>>389の言ってることは全くその通りなんだが、FunctionにしろSubにしろ、内容が汎用的なものをまとめる、同じような処理を纏める考え方をするようになると最初から構造的に組むようになる。
その方が圧倒的に楽だから。
あと、例に挙げてるコードは良くない。
ブックやシートの省略はバグの元。

400:デフォルトの名無しさん
19/05/28 14:03:33.28 8P1bQTIM0.net
>>398
マウントも何も、明らかに初心者なんだから仕方ないだろ

401:デフォルトの名無しさん
19/05/28 14:18:44.11 rhAlx8Ij0.net
> VBA初心者にありがちな意見だね。
この部分は必要なかったんだよなぁ

402:デフォルトの名無しさん
19/05/28 14:34:43.00 8P1bQTIM0.net
>>401
必要なんだが。

403:デフォルトの名無しさん
19/05/28 15:27:43.49 m2eXkVaQM.net
初心者お断りな質問スレが存在した…?

404:デフォルトの名無しさん
19/05/28 15:33:18.00 rhAlx8Ij0.net
>>402
君はそう書かないと回答できないのか、なるほど
興味深い

405:デフォルトの名無しさん
19/05/28 15:57:40.29 JWvhlEsx0.net
>>386
>>387
話題を気にせずに、切り込んだ形で質問をしてしまいました。
ホントに困ってしまったのでココで質問をしてみましたが、割り込んだ形でご迷惑をおかけしました。
VBAなんでも質問スレで聞いてみます。
お邪魔しましたm( _ _ )m

406:デフォルトの名無しさん
19/05/28 15:58:05.43 8ZgSX7bEF.net
>>404
構造的に考えるべきという意味付けの為に必要。
初心者にありがちだということで、初心者からレベルアップした方が良いということになる。

407:デフォルトの名無しさん
19/05/28 16:01:17.83 8ZgSX7bEF.net
>>405
別に迷惑でも何でも無い。
元々、初心者の質問に難癖を付けた奴が悪いと思ったから>>355を書いたんだが、内容を見ずに変に絡んでくる奴が出てきただけのこと。

408:デフォルトの名無しさん
19/05/28 18:23:49.73 PIv3udRAr.net
i=の行をloopの中に入れる

409:デフォルトの名無しさん
19/05/28 18:25:13.81 PIv3udRAr.net
その上のtempaddressも

410:デフォルトの名無しさん
19/05/28 18:29:24.54 Bg5LHkgbH.net
マウントしてると誤解を招くような
会話しかできない奴は能力低い奴多い
他人の意見も聞かないしね。
傲慢が後に返り討ちにあう

411:デフォルトの名無しさん
19/05/28 18:33:26.76 C7Ijh9EKa.net
>>397
こんなんあったんですね!
自分で作るなら他にも機能足してたかもしれないけど、これなら簡単で皆で使えるからこれでいきます

ウイルスメールの作成方法……確かに……

412:デフォルトの名無しさん
19/05/28 19:06:09.82 +01nmcZGF.net
>>410
誤解を招く前に、プライドに触ったのか碌に内容読まずに絡む奴の方がよっぽど問題だと思うが。

413:デフォルトの名無しさん
19/05/28 19:42:52.66 ID0apHa80.net
ところでここは「Exce VBA」の質問スレ

414:デフォルトの名無しさん
19/05/28 19:55:29.19 P/fMeUQp0.net
>>410
マウントしたい奴と思ったら絡むなよ
意味もなく伸びrだけ

415:デフォルトの名無しさん
19/05/28 22:28:38.54 6NK7Ep/b0.net
>>384
functionなら1行で書ける!
と思ったけど、よく見たらどっちも2行かかるな。
Dim A
A = function()
Dim A
sub(ByRef A)
functionのメリットって何だろ?
1個しか返せないし。

416:デフォルトの名無しさん
19/05/28 22:45:21.26 g3Ue34fJ0.net
>>415
馬鹿はいい加減黙れよ

417:デフォルトの名無しさん
19/05/28 22:46:58.82 exe6lUi60.net
>>415
教えてほしいなら教えてくれと言えば良い
君以外全員わかってるぞ

418:デフォルトの名無しさん
19/05/28 23:03:25.05 sz8y6/Um0.net
>>416
容赦なくてワロタw
>>415
If func(x) Then
とか
func1(func2(a), func3(b))
とか

419:デフォルトの名無しさん
19/05/28 23:15:31.12 MN8nEIAEd.net
>>415
1個しか返せないといっても工夫の問題。
配列で返せば実質何個でも返せるし、Collectionで返すこともできる。
クラスインスタンスを返すなんてことも出来る。
どれも普通にやることだよ。
何を返せば使いやすいかを構造的に考えて人間にとってピンと来るように組めばメンテナンスも楽だし、プロシージャの内容も理解しやすい。
初心者のコードは何をする処理なのか全く分からないことも多いが上級者のコードは考えて組まれてるので理解しやすいんだ。
>>416
>>417
罵倒するだけで内容を書かないんじゃ君らのレベルも押して知るべしだな。

420:デフォルトの名無しさん
19/05/28 23:18:36.46 MN8nEIAEd.net
>>418
むしろ
Function Hoge(Arg() As String) As String()
の方が適切かな。
或いは
Function Hoge(Arg() As String) As Collection
とか。

421:デフォルトの名無しさん
19/05/28 23:45:10.83 sz8y6/Um0.net
>>419
AddressOf で関数を返すことすら出来るのだ

422:デフォルトの名無しさん
19/05/28 23:58:45.95 0rD99vo/0.net
IF Func() Then
とか
Loop Until Func()
なんてのがSubでは代用しにくい使い方だな (できないとは言わないが)
むしろ普通の数式で
A = Func1() + Func2() + Func3()
みたいに書きたい時の方が、Subに置き換えた時の無駄が多くなりそう

423:デフォルトの名無しさん
19/05/29 00:02:34.60 S0wmSPvZ0.net
2年ぐらい前にもSubとFunctionに違いなんかないと言い張る粘着がいたのを思い出した

424:デフォルトの名無しさん
19/05/29 00:03:33.14 6UUzdaAE0.net
BASICなんだからGOTOだけで十分

425:デフォルトの名無しさん
19/05/29 00:47:16.25 aQ2xiGWFd.net
>>421
おう、ここで初めて高度な話を見た。

426:デフォルトの名無しさん
19/05/29 03:04:42.46 1woLKBVkM.net
・Sub
・返り値のないFunction
この違いは何ですか?

427:デフォルトの名無しさん
19/05/29 04:29:34.43 WducifPVa.net
subじゃ1個も値返せないじゃん

428:デフォルトの名無しさん
19/05/29 05:02:37.42 E4T3mNp50.net
戻り値ないならsubでいいじゃんって話だと思うんだけど俺も一応はそう思う
昔はsubばかりで書いてた
subは単体で実行できるけどfunctionは単体では実行できないという違いがある
functionは他から呼び出さないと実行できないという意味でね。
ここからは俺の好みみたいなもんだけど、
ボタンに直結してるようなエントリーポイント的なものは
subで書いて、それ以外、特に引数を受けとって処理するものは
単体では実行できないことを明確にする意味で全てfunctionにしてる
そう論理的で整合性のある区分というわけではないんだけど。

429:デフォルトの名無しさん
19/05/29 08:46:31.68 WZbm0MMEM.net
>>428
単体で実行できるかどうかはSub/Function の差じゃなくて、引数を取る/取らないの差じゃなかったっけ?

430:デフォルトの名無しさん
19/05/29 08:57:09.71 dT9QfEjx0.net
>>429
正解
Sub foo() '単体実行可能
End Sub
Sub bar(baz) '単体実行は出来ない
End Sub

431:デフォルトの名無しさん
19/05/29 08:58:24.42 dT9QfEjx0.net
あと、実行可能かどうかはpublic/privateで切り分けるべきだろう

432:デフォルトの名無しさん
19/05/29 09:10:25.71 QQeifizk0.net
セルに式として関数を入力して呼べるFunctionと呼べないSub

433:デフォルトの名無しさん
19/05/29 09:17:16.17 dT9QfEjx0.net
>>432
あれ、じゃあ何のためにsubって存在するんだ
return 0しなくていいってだけ?

434:デフォルトの名無しさん
19/05/29 09:30:42.49 dT9QfEjx0.net
基本はfunction
スクリプトとして何かをさせたい時にだけsubで定義する。C言語で言うint main(){}
戻り値や引数のありなしでは切り分けない
と考えると自然と思うんだけど、どうだろう
この考えだと、private subは使うべきじゃないって事になる

435:デフォルトの名無しさん
19/05/29 10:59:47.52 bJuQUiqr0.net
別に良いんだよ何を使おうと、まあ好きにすればって程度
まあ、ただ論理的に考えずごみを量産するやつはいるな

436:デフォルトの名無しさん
19/05/29 11:30:55.13 zbMbGE8SM.net
>>426
戻り値のないFunctionは存在しない
戻ってきた値を無視することができるだけ
つまり戻り値を格納するためにメモリを必ず使うから、Subと比較して速度とメモリ効率の2点で不利になる

437:デフォルトの名無しさん
19/05/29 11:31:54.96 WZbm0MMEM.net
Excel長老の話って知ってる?

438:デフォルトの名無しさん
19/05/29 11:32:51.36 WZbm0MMEM.net
>>436
メモリ効率ってネタだよね?

439:デフォルトの名無しさん
19/05/29 11:39:17.00 zbMbGE8SM.net
>>433
今から40年以上前、それまでのシーケンシャルなプログラムでは能率が悪いから構造化しようという話しが出て、その時に提唱されたのが「手続き(Sub)」と「関数(Function)」という概念
しかし、教育用として作られたPascalという言語では忠実に実装されたけど、C言語には関数しか用意されなかったし、その後に登場したJavaも関数しかない
結局は言語を設計した人のリテラシーというか、単なる好みで決まったようなもん
今でもたくさんの言語が乱立してるのは、結局はみんな「ぼくの考えたさいきょうのげんご」が作りたいだけと思って、あながち間違いじゃない

440:デフォルトの名無しさん
19/05/29 11:41:11.71 zbMbGE8SM.net
>>438
ネタじゃないよ
リカーシブなプログラムを書いてみればすぐわかる
VBAでもFunctionは呼び出すたびにヒープを最低4バイトずつ消費するから、再帰の最大回数が少ないのは簡単な実験ですぐに確認できる

441:デフォルトの名無しさん
19/05/29 11:48:47.33 WZbm0MMEM.net
>>440
「ヒープ」ってネタだよね?

442:デフォルトの名無しさん
19/05/29 11:53:59.73 dT9QfEjx0.net
>>439
ありがとう!そういう事か
sub便利だけど、便利過ぎてかなり変な事になってるね
subから呼び出すのはfunctionと決めていれば良いんだろうけど、
でもsubからsub呼び出す事もあるから・・・
結局subって意味なくね?
C言語のsub無しが正解のような気がする。
>>441
なんでネタと思うんだ?

443:デフォルトの名無しさん
19/05/29 11:58:48.77 zbMbGE8SM.net
簡単な実験
Funcの方がメモリをたくさん消費するから繰り返せる回数が少ない
データキャッシュも有限なリソースだから、どちらでもいい時はFuncの方が不利
Sub sub_test()
  test_sub (1)
End Sub
Sub func_test()
  test_func (1)
End Sub
Sub test_sub(n)
  n = n + 1
  Debug.Print n;
  test_sub (n)
End Sub
Function test_func(n)
  n = n + 1
  Debug.Print n;
  test_func (n)
End Function

444:デフォルトの名無しさん
19/05/29 13:23:20.90 AfH1iVf/M.net
Selenium+vbaを使って
ChromeでWebページをPDF保存することは可能でしょうか?

445:デフォルトの名無しさん
19/05/29 13:29:26.76 dT9QfEjx0.net
>>444
vbaは不要っぽい
URLリンク(takuya-1st.hatenablog.jp)
記事が古いから一度試したほうが良いと思う

446:デフォルトの名無しさん
19/05/29 13:43:28.26 aQ2xiGWFd.net
>>442
だから構造的に考えて意味的にFunctionが適するかSubが適するかを選択するんだ。
意味的にというのは人間の感覚にとって合った方を採用すべきということ。
Cだってvoidがあるじゃねーの。
無理矢理1を返すとかすれば戻り値が絶対に必要な言語設計だってできた筈。
なんでvoidがあるかといえば、やっぱり意味的に戻り値無しが人間にとってピッタリ来ることがあるからだと思うが。

447:デフォルトの名無しさん
19/05/29 15:03:19.55 eVQzoh+sa.net
処理結果をpublicで判断するよりは
値を返すほうが使いやすい

448:デフォルトの名無しさん
19/05/29 17:40:58.36 S0wmSPvZ0.net
プログラムを一人で作って自分だけが永遠に保守するなら好きなように作ればいい
大規模なアプリをチームで作ったり、他人が修正したりする時には間違いを起こさないようにルールを決める必要があって、
経験上、カプセル化した方が結果的に安全で能率がいいということになっている
そのための手法の一つが変数のスコープを狭くすること、グローバル変数は使わないこと、なんだな
だから結果はどこかの変数に入れるんじゃなくてFunctionで返すんだよ
複数の値を返したいなら設計を見直すべきで、構造体を使うか、1つずつFunctionを分けるか考える

449:デフォルトの名無しさん
19/05/29 18:50:10.49 b/xKBA/BM.net
>>445
SeleniumではなくSeleniumBasic
の間違えでした。
ごめんなさい。

450:デフォルトの名無しさん
19/05/29 18:57:16.16 dT9QfEjx0.net
グローバル汚染はマジでエグいからな
「name」「mail」この変使われてたら超めんどい
>>449
Selenium使えばいいんじゃない

451:デフォルトの名無しさん
19/05/29 19:33:05.85 gbtQDfh8M.net
seleniumってもう使い物にならなくなってなかったっけ

452:デフォルトの名無しさん
19/05/30 00:50:17.75 oM5Ks3kV0.net
>>440
ヒープとスタックの違い理解してる?

453:デフォルトの名無しさん
19/05/30 03:19:10.04 1qsenVBka.net
byref もあるしな

454:デフォルトの名無しさん
19/05/30 08:21:00.17 oyMl0bcF0.net
>>452
それって日本昔話に載ってる?
今も気にすること?

455:デフォルトの名無しさん
19/05/30 12:02:16.59 fCKFoHR/M.net
使うスタック量によって再帰での有利不利って理屈の上ではあるだろうけど
現実的な意味ってあるの?
条件によってスタックオーバーフローする「かもしれない」プログラムに対して
引数や返り値を考慮とか再帰深度に気を使うとか、ちょっとVBAで考えられないんですけど

456:デフォルトの名無しさん
19/05/30 12:25:00.74 0nKLhIYFr.net
>>454
SubとFunctionでメモリ効率の違い考慮するレベルなら

457:デフォルトの名無しさん
19/05/30 12:31:21.82 NTWA4E5yM.net
>>454
別に気にしなくてもいいけど>>440みたいなツッコミ入れるならちゃんと理解してないと恥をかく

458:デフォルトの名無しさん
19/05/30 15:33:21.51 oyMl0bcF0.net
>>457
おれも、昔話書きたくなったレベル
z80とか8080とかな8086なんて凄いよな

459:デフォルトの名無しさん
19/05/30 18:56:24.47 86kk1xI3a.net
ここできいていいのか分かりませんがマクロの組み方で教えてください
「=5月シートA1」
「=5月シートA2」
みたいに引っ張っているセルを
「=6月シートA1」
「=6月シートA2」
みたいに変えるマクロを組みたいんですが
それを毎月自動で7月、8月、と月に合わせて変えるのはどうやるのですか?
理想としては、5月と書いてあるセルを6月と入力し、そのセルをコピペしていくマクロを組みたいのですが、その流れを作っても元の5月だけがコピペされてしまう状態です。
説明が下手ですみません。

460:デフォルトの名無しさん
19/05/30 19:04:11.68 1nLCMVmfr.net
今月=month(date)
activesheet.range("a1").resize(5).formula="="&今月&"!a1"

461:デフォルトの名無しさん
19/05/30 19:12:37.62 3bWSKYGBM.net
>>459
5月シートをコピーして6月シートにする。
5月を6月に文字列全置換え
処理日によって月を自動判定でもいいが、フォームで値を確認、修正後に実行の方がいいんじゃないかな

462:デフォルトの名無しさん
19/05/30 19:18:06.10 86kk1xI3a.net
>>460
すみません初心者なので詳しくは分かりませんが、今の月を参照するセルを作り、それをコピペするように組めばいい感じでしょうか。
間違ってたらすみません。
>>461
今まではそうやっていたのですが、それ以外にも、不要な場所を削除して、一番下の数値を一番上に持っていってみたいな作業があるので、その置き換えも合わせてマクロにしたいと思いまして。

463:デフォルトの名無しさん
19/05/30 19:37:14.94 /EJeltR2r.net
>>462
今月の月を取得して、a1からa5までの数式を置き換えるイメージです。
携帯からなので試せていませんが・・・

464:デフォルトの名無しさん
19/05/30 19:38:13.64 86kk1xI3a.net
>>463
ありがとうございます。
試してみます

465:デフォルトの名無しさん
19/05/30 19:41:48.72 S1ohEoHj0.net
>>464
文字列の検索や置換は数式にも有効
5月を6月に置換すればいい
VBAは必要ない

466:デフォルトの名無しさん
19/05/30 19:49:45.60 vA8HeCKe0.net
>>459
他の処理はともかく数式に関してはマクロいらない
=INDIRECT(MONTH(NOW())&"月!A1")

467:デフォルトの名無しさん
19/05/30 19:55:45.24 vA8HeCKe0.net
間違えたわ、こうだわ
=INDIRECT(MONTH(NOW())&"月!A"&ROW(A1))

468:デフォルトの名無しさん
19/05/31 10:21:23.92 iXFRocgY0.net
なんか、今月にこだわる人多いが説明だと選んだ月のシートからデーターを
持ってきたいだけだろ、勿論INDIRECTを使うことでマクロを使う必要はない
例えば、値を参照するシートとのA1セルに入力規制で1月~12月を選択して
=INDIRECT($A$1 & "!A" & ROW(A1))
でいいだろ

469:デフォルトの名無しさん
19/05/31 10:48:51.98 xVkqny4q0.net
>>468
> それを毎月自動で7月、8月、と月に合わせて変えるのはどうやるのですか?

470:デフォルトの名無しさん
19/05/31 11:09:05.87 iXFRocgY0.net
>>469
自動だったらA1セルをNow()にして表示形式を
月だけにすればいいだけだろ
各セルに設定する関数は簡素に共通化する

471:デフォルトの名無しさん
19/05/31 11:20:16.63 xVkqny4q0.net
>>470
> なんか、今月にこだわる人多いが

472:デフォルトの名無しさん
19/05/31 11:34:43.20 iXFRocgY0.net
>>471
今月か選択なんてExcelをちょろって知ってればどっちでもいいんだよ
1っか所変えただけで要は1っか所を変えただけでその月に対応すればよいだけ
こんなのマクロなんか書いたら笑えるレベル

473:デフォルトの名無しさん
19/05/31 11:36:26.16 iXFRocgY0.net
あら~ダブって入ったわ すまぬの

474:デフォルトの名無しさん
19/05/31 11:48:24.92 fWZN/ECyM.net
なんかVBA使わずにワークシート関数使えっていうコンセンサスでもあるの?
思い込みと違う?

475:デフォルトの名無しさん
19/05/31 11:53:29.26 iXFRocgY0.net
>>459
お題は
>理想としては、5月と書いてあるセルを6月と入力し、そのセルをコピペしていくマクロを組みたいのですが、その流れを作っても元の5月だけがコピペされてしまう状態です。
だけどな、マクロを使わないと気が済まないやつっているのかな

476:デフォルトの名無しさん
19/05/31 11:57:27.72 iXFRocgY0.net
>>474
これでマクロを作るやつのマクロを参考にしたいな
ぜひ作ってね

477:デフォルトの名無しさん
19/05/31 12:02:31.59 kMeHCJPt0.net
>>474
数式だけならファイル形式をxlsxのままにできて安全
同じ機能なら数式で済ませた方が良いだろう
家計簿ならどっちでも良いのは間違いない

478:デフォルトの名無しさん
19/05/31 12:17:34.40 iXFRocgY0.net
まあなんだな、$A$1この書き方って絶対参照だが良くないんだよな
普通はそのセルに名前を付けてその名前で参照する
例えば「設定月」みたいな名前ね

479:デフォルトの名無しさん
19/05/31 12:21:40.48 UKwhkiwBr.net
VBAのスレでマクロつかうなとか(笑)

480:デフォルトの名無しさん
19/05/31 12:23:22.93 xVkqny4q0.net
>>472
>>462 > それ以外にも、不要な場所を削除して、一番下の数値を一番上に持っていってみたいな作業があるので、その置き換えも合わせてマクロにしたいと思いまして。

481:デフォルトの名無しさん
19/05/31 12:27:21.46 wdWzuIo7p.net
シートを左のものからきっちり順に印刷する(印刷指示を出す)vbaありませんか?
スプール云々はプリンターの詳細設定弄れなくなってるのでvbaでどうにかなればしたいのですが・・

482:デフォルトの名無しさん
19/05/31 12:27:47.02 iXFRocgY0.net
Excelの関数や機能も知らん奴がVBAでマクロを作るか
少しは勉強しろよ、ってか
運転できないやつが、自動運転を作るみたいなもんか?
ってか参照で十分なものを何でマクロ(笑)

483:デフォルトの名無しさん
19/05/31 12:31:43.08 xVkqny4q0.net
>>482
>>459 > 毎月自動で7月、8月、と月に合わせて変える
 >>468 > 今月にこだわる人多いが
>>462 > その置き換えも合わせてマクロにしたい
 >>472 > こんなのマクロなんか書いたら笑えるレベル
一部読み飛ばして回答してしまうのはなんなのネタなの

484:デフォルトの名無しさん
19/05/31 12:32:47.94 iXFRocgY0.net
>>480
すまないが、そんなのどうして関数でできないと思うんだ?
ちゃんと説明すれば?、今まで書いているのはあまりにも簡単な質問で
関数で十分なんだが

485:デフォルトの名無しさん
19/05/31 12:37:34.60 iXFRocgY0.net
>>483
別に、マクロで提案してみたら

486:デフォルトの名無しさん
19/05/31 12:54:17.71 jiw85AG60.net
自動車つくれなくても、つくってもらって乗ればいいじゃん

487:デフォルトの名無しさん
19/05/31 13:01:15.44 iXFRocgY0.net
>>486
でも、企画があってな わけなわからん奴の作った自転車に
乗れるか?
責任は運転者だよ、関数は規格通りだな
その自転車がすごきゃいいよ、単に危ないだけじゃな

488:デフォルトの名無しさん
19/05/31 13:10:48.90 iXFRocgY0.net
>>483
で、お前は何ができるんだ?
何が気に障った?(笑)

489:デフォルトの名無しさん
19/05/31 13:26:58.37 iXFRocgY0.net
>>483
VBAで提案できないやつが・・・・
ネタだよな・・関数なら即座なのに

490:デフォルトの名無しさん
19/05/31 13:43:20.27 xVkqny4q0.net
>>489
今月にこだわっててもおかしくないし
一連の流れをマクロにしてその一部の質問してるわけでしょ
だから>>468>>472も的外れって話
訂正するわけでもないのに再アンカをしかも連投するってせっかちすぎない?

491:デフォルトの名無しさん
19/05/31 13:55:19.86 iXFRocgY0.net
>>490
今月とかどうでもいいんだよ
単に参照すればいいだけ、それで質問者の意図に対応できないか?
自分の主張じゃなく、何が正しいかで提案するんだよ
VBAで作れば何でもできるさ、でも単に絶対参照でいいものをこねくり回すなよ

492:デフォルトの名無しさん
19/05/31 14:07:14.86 xVkqny4q0.net
>>491
次は話ループさせんの?
「毎月自動、VBA」という質問の前提をこねくり回してるのはそっちでは?

493:デフォルトの名無しさん
19/05/31 14:14:55.01 kMeHCJPt0.net
普通のExcelスレはあんなに紳士的なのに・・・

494:デフォルトの名無しさん
19/05/31 14:31:03.11 iXFRocgY0.net
何だろうな、普通に絶対参照すればいいものをVBA・VBAって叫ぶの
怖いは

495:デフォルトの名無しさん
19/05/31 14:48:52.06 2f7ZWXQQ0.net
>>494
>>459>>462でマクロでやりたいと言ってるし、
マクロ以外の回答に対してノーリアクション
数式での回答を求めてないのだろう。結果を求めるだけじゃなく、マクロ自体を書きたいという質問者もいるわけだしな
あまり押し付けるのもどうかと思う
もちろん一般的な場合は君のやり方が正しいのは明らか
さすがにそれが分かってない人はいないだろう

496:デフォルトの名無しさん
19/05/31 15:04:15.42 jiw85AG60.net
>>462
削除等はマクロで、他シート参照は数式でいいんでないの

497:デフォルトの名無しさん
19/05/31 15:50:07.97 xVkqny4q0.net
元の前提無視して絶対参照・絶対参照って叫ぶの
怖いは
って言えばいいのかな

498:デフォルトの名無しさん
19/05/31 16:21:11.81 iXFRocgY0.net
>>496
削除が必要って単なる思い込みではないのかな
Excelの使い方もわからないのってVBAって魔法の玉手箱じゃないの
でなければ、質問者に対する最適の解をさっさとVBAで示せばいいんだよ

499:デフォルトの名無しさん
19/05/31 16:31:39.12 Q8fJ9KqCF.net
元々の質問を見る限り、詳細が無いのでVBAで解決すべきか数式で解決すべきか判断できん。
逆に言えばこれだけの情報でVBAを必要無いとか言ってしまえる人って初心者とまでは言わないけど大したスキルは無いんだろうなと思ってしまう。

500:デフォルトの名無しさん
19/05/31 16:43:05.14 agbDawORM.net
>>499
そうか 君はプロなんだね(笑)

501:デフォルトの名無しさん
19/05/31 17:06:59.36 Q8fJ9KqCF.net
>>500
初心者は自分の状況を上手く説明出来ないし、それはしようが無い。
一方回答する方も、初心者は自分の狭い土俵で回答しようとするんだよね。

502:デフォルトの名無しさん
19/05/31 17:12:13.76 agbDawORM.net
>>501
いまだにVBAでの回答すらないけどね

503:デフォルトの名無しさん
19/05/31 17:17:59.31 Q8fJ9KqCF.net
>>502
俺はこんな質問に回答しないよ。
何処の掲示板でもそうだけと面白いテーマじゃなきゃ回答しない。
俺が回答する必要も無いだろう。
>>460とかを見てどうにか頑張れば良いんじゃね?と思ってる。

504:デフォルトの名無しさん
19/05/31 17:21:09.14 Q8fJ9KqCF.net
技術レベルは大したことない問題だけど最近回答したのは>>284だな。
テーマとしては面白いから。

505:デフォルトの名無しさん
19/05/31 17:33:03.28 NquLpIx1r.net
てか>>464で終わっとるやろ…

506:デフォルトの名無しさん
19/05/31 17:36:44.72 xVkqny4q0.net
>>498
むしろ思い込み(というか自分の都合のいいように解釈)してるのはそっちなんだよなぁ


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch