!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
ExcelのVBAに関する質問スレです
コード書き込みや作成依頼もOK
※前スレ
Excel VBA 質問スレ Part60
https://mevius.5ch.net/test/read.cgi/tech/1552736349/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
Excel VBA 質問スレ Part61
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 2b2b-GhCw)
2019/04/25(木) 23:41:03.61ID:rni/4bMj0360デフォルトの名無しさん (ワッチョイ 07f9-IeET)
2019/05/27(月) 15:11:18.55ID:W0zr6KdF0361デフォルトの名無しさん (ワッチョイ bf68-dCWx)
2019/05/27(月) 15:14:09.75ID:6csejWaN0362デフォルトの名無しさん (ワッチョイ 07f9-IeET)
2019/05/27(月) 15:29:12.90ID:W0zr6KdF0 >>361
だったら適当にすれば(笑)
出来ることを安易に提案することの影響を考えろよ
例えば、自動計算を止める
こんなのそのままにされたら困るほかの人いるだろ
でも単にONとOFFじゃあだめなんだよ、直前を記録して戻す
また、エラーや中止でも戻さないとな
だったら適当にすれば(笑)
出来ることを安易に提案することの影響を考えろよ
例えば、自動計算を止める
こんなのそのままにされたら困るほかの人いるだろ
でも単にONとOFFじゃあだめなんだよ、直前を記録して戻す
また、エラーや中止でも戻さないとな
363デフォルトの名無しさん (ワッチョイ 07f9-IeET)
2019/05/27(月) 15:39:29.96ID:W0zr6KdF0364デフォルトの名無しさん (ワッチョイ bf68-dCWx)
2019/05/27(月) 15:42:22.97ID:6csejWaN0 >>362>>363
韓国人?
韓国人?
365デフォルトの名無しさん (ワッチョイ bf68-dCWx)
2019/05/27(月) 15:42:59.47ID:6csejWaN0 おだてるの意味もわかってないみたいだし、韓国の方でしたか
そりゃ話も合わないな
そりゃ話も合わないな
366デフォルトの名無しさん (ワッチョイ 07f9-IeET)
2019/05/27(月) 15:44:13.29ID:W0zr6KdF0 >>364
きみはハエかカエル?
きみはハエかカエル?
367デフォルトの名無しさん (ワッチョイ 07f9-IeET)
2019/05/27(月) 15:45:54.11ID:W0zr6KdF0368デフォルトの名無しさん (ワッチョイ bf68-dCWx)
2019/05/27(月) 15:53:54.48ID:6csejWaN0 おだてる・・・w
369デフォルトの名無しさん (ワッチョイ bf68-dCWx)
2019/05/27(月) 16:04:29.34ID:6csejWaN0 これ以外の高速化ってありますか?
https://15g.jp/post-314/
https://15g.jp/post-314/
370デフォルトの名無しさん (アメ MMcb-bNEy)
2019/05/27(月) 16:27:23.36ID:aE9KPqY2M371デフォルトの名無しさん (ワッチョイ bf68-dCWx)
2019/05/27(月) 16:42:48.59ID:6csejWaN0372デフォルトの名無しさん (ブーイモ MMcb-cspy)
2019/05/27(月) 16:43:14.09ID:2J++TcAHM 再描画を止めるのは好かんな
373デフォルトの名無しさん (アメ MMcb-bNEy)
2019/05/27(月) 17:19:36.20ID:aE9KPqY2M374デフォルトの名無しさん (アメ MMcb-bNEy)
2019/05/27(月) 17:53:10.57ID:aE9KPqY2M 変更のないセルはかきかえない
変数の型をこていするかな
変数の型をこていするかな
375デフォルトの名無しさん (エムゾネ FFff-cMWe)
2019/05/27(月) 20:18:12.39ID:28fQIolrF376デフォルトの名無しさん (エムゾネ FFff-cMWe)
2019/05/27(月) 20:19:14.57ID:28fQIolrF 逆に、これで格段に速くなったら恥ずかしいと思うべきだ。
377デフォルトの名無しさん (エムゾネ FFff-cMWe)
2019/05/27(月) 20:29:10.36ID:eWpgS1rnF378デフォルトの名無しさん (ワッチョイ 877c-+q9b)
2019/05/27(月) 21:03:48.67ID:TIEuQB3m0 >>345
できるけど、一番最後の処理が事故を起こしそうだから1クッション置いた方がいいかも
できるけど、一番最後の処理が事故を起こしそうだから1クッション置いた方がいいかも
379デフォルトの名無しさん (ワッチョイ 87e6-dCWx)
2019/05/27(月) 21:13:42.01ID:Soi68xiZ0 セルというかシートは使わない
データ保存には外部バイナリファイルを読み書きする
データ保存には外部バイナリファイルを読み書きする
380デフォルトの名無しさん (ワッチョイ 877c-+q9b)
2019/05/27(月) 21:16:23.22ID:TIEuQB3m0 >>369
これは描画を抑制するからその分の時間がかからなくなるというだけなので、表示に因らない処理の速度アップはまた別だよ
これは描画を抑制するからその分の時間がかからなくなるというだけなので、表示に因らない処理の速度アップはまた別だよ
381デフォルトの名無しさん (ワッチョイ 67da-dCWx)
2019/05/27(月) 22:07:18.66ID:9GzIJnKt0 何でユーザーフォームを使うのかって?
シートに書くより格好いいからに決まってるじゃんwwwww
いや、わりとマジでそんなもんだと思いますけど。
だって、ユーザーフォームじゃなきゃ再現できないようなものって、
普通の事務処理でそんなに無いでしょ。
シートに書くより格好いいからに決まってるじゃんwwwww
いや、わりとマジでそんなもんだと思いますけど。
だって、ユーザーフォームじゃなきゃ再現できないようなものって、
普通の事務処理でそんなに無いでしょ。
382デフォルトの名無しさん (アークセー Sx5b-cVpm)
2019/05/28(火) 01:04:45.98ID:Rr62XR8Vx ワークシートのイベントに重めの処理を書いている場合、シート側のイベントを避けるためユーザーフォームで出入力制御や演算を処理させることはある
383デフォルトの名無しさん (ワッチョイ 8791-cMWe)
2019/05/28(火) 08:43:02.61ID:8P1bQTIM0 入力のしやすさとかフォームの方が良い場合もあるし、ユーザーインターフェイスとしてはフォームの方が優れている。
Excel使わずにメモ帳とCSVで事足りるってのと同じような考えの人がいるな。
Excel使わずにメモ帳とCSVで事足りるってのと同じような考えの人がいるな。
384デフォルトの名無しさん (JP 0H4f-Ha6N)
2019/05/28(火) 09:44:28.89ID:CE2aKfrCH 初心者レベルの知識で長いことVBAいじってる者なんだが、
functionプロシージャって使わなくない?
普通のsubしか使ったことない
どんな時に便利なの?
functionプロシージャって使わなくない?
普通のsubしか使ったことない
どんな時に便利なの?
385デフォルトの名無しさん (ワッチョイ bf68-dCWx)
2019/05/28(火) 09:47:42.25ID:rhAlx8Ij0 >>384
値を返す時。便利というか必須。=sum()で値が返らなかった時の事を考えてみると良い
むしろfunctionが普通なのだ
vbaの場合、ワークシート変更しておしまいってパターンが多いから恩恵を得にくいけどね
値を返す時。便利というか必須。=sum()で値が返らなかった時の事を考えてみると良い
むしろfunctionが普通なのだ
vbaの場合、ワークシート変更しておしまいってパターンが多いから恩恵を得にくいけどね
386デフォルトの名無しさん (ワッチョイ df71-x/mB)
2019/05/28(火) 09:55:56.33ID:JWvhlEsx0 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 くみこ
書籍、サイトで掲載されていたコードを利用し、少し変えたものです。
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デフォルトの名無しさん (ワッチョイ df71-x/mB)
2019/05/28(火) 09:56:25.54ID:JWvhlEsx0 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
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デフォルトの名無しさん (JP 0H4f-Ha6N)
2019/05/28(火) 10:10:54.71ID:CE2aKfrCH >>385
うーん、値を返すのは分かるんだけど、わざわざsubから取り出す意味が分からんのよ
subの中に入れちゃえば良くない?
コードが長くなる時とか、他のプロシージャにも流用したい場合なんかにfunctionで別プロシージャにしとくと分かりやすいってこと?
そういやfunctionを関数みたいに使う場合もあると聞いたな
うーん、値を返すのは分かるんだけど、わざわざsubから取り出す意味が分からんのよ
subの中に入れちゃえば良くない?
コードが長くなる時とか、他のプロシージャにも流用したい場合なんかにfunctionで別プロシージャにしとくと分かりやすいってこと?
そういやfunctionを関数みたいに使う場合もあると聞いたな
389デフォルトの名無しさん (ワッチョイ 07f9-IeET)
2019/05/28(火) 10:32:00.95ID:P/fMeUQp0390デフォルトの名無しさん (ブーイモ MM2b-cspy)
2019/05/28(火) 11:24:47.87ID:aRCJr/ZnM391デフォルトの名無しさん (JP 0H4f-Ha6N)
2019/05/28(火) 11:26:30.05ID:CE2aKfrCH >>389
あーその説明で分かった ありがとう
たしかに今までは、動けばいいやで作ってたからコードが長くなってた
顧客コードから各データを検索する時なんか、
Cells(i,2).value=Range(Z:Z).Find(Cells(i,1)).Offset(0,5).Value
みたいなコードを10行とか書いてたわ
あーその説明で分かった ありがとう
たしかに今までは、動けばいいやで作ってたからコードが長くなってた
顧客コードから各データを検索する時なんか、
Cells(i,2).value=Range(Z:Z).Find(Cells(i,1)).Offset(0,5).Value
みたいなコードを10行とか書いてたわ
392デフォルトの名無しさん (アウアウウー Saab-DSaV)
2019/05/28(火) 12:23:13.41ID:1q3vxt7ga OutlookのVBAもここで可でしょうか?
違ったら誘導お願いします
上司へ「承認お願いします」と言った趣旨のメールを送った際、上司がボタン1つで承認する旨のメールが送れるようにしたいです
しかし複数いる上司全員にマクロの設定方法を教えるのは面倒です
私から送信するメール本文にマクロを組み込み、上司が受け取った際に本文にあるリンクを押せば(マクロを自分で設定していなくても)返信メールが自動作成されるような手法が取れればベストなのですが、そういったことは可能なのでしょうか?
違ったら誘導お願いします
上司へ「承認お願いします」と言った趣旨のメールを送った際、上司がボタン1つで承認する旨のメールが送れるようにしたいです
しかし複数いる上司全員にマクロの設定方法を教えるのは面倒です
私から送信するメール本文にマクロを組み込み、上司が受け取った際に本文にあるリンクを押せば(マクロを自分で設定していなくても)返信メールが自動作成されるような手法が取れればベストなのですが、そういったことは可能なのでしょうか?
393デフォルトの名無しさん (ブーイモ MMcf-xIO9)
2019/05/28(火) 12:47:38.41ID:i1bbppKtM >>392
ウィルスメールの作成方法きいてる様なもんだなw
ウィルスメールの作成方法きいてる様なもんだなw
394デフォルトの名無しさん (オイコラミネオ MMbb-x288)
2019/05/28(火) 12:51:48.37ID:Z4r31YmpM395デフォルトの名無しさん (ワッチョイ 07f9-IeET)
2019/05/28(火) 13:44:15.47ID:P/fMeUQp0396デフォルトの名無しさん (ワッチョイ 8791-cMWe)
2019/05/28(火) 13:45:21.90ID:8P1bQTIM0397デフォルトの名無しさん (ワッチョイ 8791-cMWe)
2019/05/28(火) 13:48:09.91ID:8P1bQTIM0 >>392
マクロでやらなくても承認ボタンを追加する機能があった筈だが。
マクロでやらなくても承認ボタンを追加する機能があった筈だが。
398デフォルトの名無しさん (ブーイモ MMcf-xIO9)
2019/05/28(火) 13:50:35.37ID:i1bbppKtM > VBA初心者にありがちな意見だね。
はい、きょうもマウント取りたい人が来ましたよ
はい、きょうもマウント取りたい人が来ましたよ
399デフォルトの名無しさん (ワッチョイ 8791-cMWe)
2019/05/28(火) 14:01:27.19ID:8P1bQTIM0400デフォルトの名無しさん (ワッチョイ 8791-cMWe)
2019/05/28(火) 14:03:33.28ID:8P1bQTIM0 >>398
マウントも何も、明らかに初心者なんだから仕方ないだろ
マウントも何も、明らかに初心者なんだから仕方ないだろ
401デフォルトの名無しさん (ワッチョイ bf68-dCWx)
2019/05/28(火) 14:18:44.11ID:rhAlx8Ij0 > VBA初心者にありがちな意見だね。
この部分は必要なかったんだよなぁ
この部分は必要なかったんだよなぁ
402デフォルトの名無しさん (ワッチョイ 8791-cMWe)
2019/05/28(火) 14:34:43.00ID:8P1bQTIM0 >>401
必要なんだが。
必要なんだが。
403デフォルトの名無しさん (オイコラミネオ MMbb-jqLE)
2019/05/28(火) 15:27:43.49ID:m2eXkVaQM 初心者お断りな質問スレが存在した…?
404デフォルトの名無しさん (ワッチョイ bf68-dCWx)
2019/05/28(火) 15:33:18.00ID:rhAlx8Ij0405デフォルトの名無しさん (ワッチョイ df71-x/mB)
2019/05/28(火) 15:57:40.29ID:JWvhlEsx0406デフォルトの名無しさん (エムゾネ FFff-cMWe)
2019/05/28(火) 15:58:05.43ID:8ZgSX7bEF407デフォルトの名無しさん (エムゾネ FFff-cMWe)
2019/05/28(火) 16:01:17.83ID:8ZgSX7bEF408デフォルトの名無しさん (オッペケ Sr5b-IQeD)
2019/05/28(火) 18:23:49.73ID:PIv3udRAr i=の行をloopの中に入れる
409デフォルトの名無しさん (オッペケ Sr5b-IQeD)
2019/05/28(火) 18:25:13.81ID:PIv3udRAr その上のtempaddressも
410デフォルトの名無しさん (JP 0Hcb-n9i6)
2019/05/28(火) 18:29:24.54ID:Bg5LHkgbH マウントしてると誤解を招くような
会話しかできない奴は能力低い奴多い
他人の意見も聞かないしね。
傲慢が後に返り討ちにあう
会話しかできない奴は能力低い奴多い
他人の意見も聞かないしね。
傲慢が後に返り討ちにあう
411デフォルトの名無しさん (アウアウウー Saab-DSaV)
2019/05/28(火) 18:33:26.76ID:C7Ijh9EKa412デフォルトの名無しさん (エムゾネ FFff-cMWe)
2019/05/28(火) 19:06:09.82ID:+01nmcZGF >>410
誤解を招く前に、プライドに触ったのか碌に内容読まずに絡む奴の方がよっぽど問題だと思うが。
誤解を招く前に、プライドに触ったのか碌に内容読まずに絡む奴の方がよっぽど問題だと思うが。
413デフォルトの名無しさん (ワッチョイ 877c-+q9b)
2019/05/28(火) 19:42:52.66ID:ID0apHa80 ところでここは「Exce VBA」の質問スレ
414デフォルトの名無しさん (ワッチョイ 07f9-IeET)
2019/05/28(火) 19:55:29.19ID:P/fMeUQp0415デフォルトの名無しさん (ワッチョイ 67da-dCWx)
2019/05/28(火) 22:28:38.54ID:6NK7Ep/b0 >>384
functionなら1行で書ける!
と思ったけど、よく見たらどっちも2行かかるな。
Dim A
A = function()
Dim A
sub(ByRef A)
functionのメリットって何だろ?
1個しか返せないし。
functionなら1行で書ける!
と思ったけど、よく見たらどっちも2行かかるな。
Dim A
A = function()
Dim A
sub(ByRef A)
functionのメリットって何だろ?
1個しか返せないし。
416デフォルトの名無しさん (ワッチョイ a78e-MZ3P)
2019/05/28(火) 22:45:21.26ID:g3Ue34fJ0 >>415
馬鹿はいい加減黙れよ
馬鹿はいい加減黙れよ
417デフォルトの名無しさん (ワッチョイ bf68-dCWx)
2019/05/28(火) 22:46:58.82ID:exe6lUi60418デフォルトの名無しさん (ワッチョイ bf8c-cspy)
2019/05/28(火) 23:03:25.05ID:sz8y6/Um0419デフォルトの名無しさん (スプッッ Sd7f-cMWe)
2019/05/28(火) 23:15:31.12ID:MN8nEIAEd420デフォルトの名無しさん (スプッッ Sd7f-cMWe)
2019/05/28(火) 23:18:36.46ID:MN8nEIAEd >>418
むしろ
Function Hoge(Arg() As String) As String()
の方が適切かな。
或いは
Function Hoge(Arg() As String) As Collection
とか。
むしろ
Function Hoge(Arg() As String) As String()
の方が適切かな。
或いは
Function Hoge(Arg() As String) As Collection
とか。
421デフォルトの名無しさん (ワッチョイ bf8c-cspy)
2019/05/28(火) 23:45:10.83ID:sz8y6/Um0 >>419
AddressOf で関数を返すことすら出来るのだ
AddressOf で関数を返すことすら出来るのだ
422デフォルトの名無しさん (ワッチョイ c7ce-dCWx)
2019/05/28(火) 23:58:45.95ID:0rD99vo/0 IF Func() Then
とか
Loop Until Func()
なんてのがSubでは代用しにくい使い方だな (できないとは言わないが)
むしろ普通の数式で
A = Func1() + Func2() + Func3()
みたいに書きたい時の方が、Subに置き換えた時の無駄が多くなりそう
とか
Loop Until Func()
なんてのがSubでは代用しにくい使い方だな (できないとは言わないが)
むしろ普通の数式で
A = Func1() + Func2() + Func3()
みたいに書きたい時の方が、Subに置き換えた時の無駄が多くなりそう
423デフォルトの名無しさん (ワッチョイ c7ce-dCWx)
2019/05/29(水) 00:02:34.60ID:S0wmSPvZ0 2年ぐらい前にもSubとFunctionに違いなんかないと言い張る粘着がいたのを思い出した
424デフォルトの名無しさん (ワッチョイ 87e6-dCWx)
2019/05/29(水) 00:03:33.14ID:6UUzdaAE0 BASICなんだからGOTOだけで十分
425デフォルトの名無しさん (スプッッ Sd7f-cMWe)
2019/05/29(水) 00:47:16.25ID:aQ2xiGWFd >>421
おう、ここで初めて高度な話を見た。
おう、ここで初めて高度な話を見た。
426デフォルトの名無しさん (ブーイモ MMcf-e2Fz)
2019/05/29(水) 03:04:42.46ID:1woLKBVkM ・Sub
・返り値のないFunction
この違いは何ですか?
・返り値のないFunction
この違いは何ですか?
427デフォルトの名無しさん (アウアウウー Saab-m12E)
2019/05/29(水) 04:29:34.43ID:WducifPVa subじゃ1個も値返せないじゃん
428デフォルトの名無しさん (ワッチョイ df01-Fpyl)
2019/05/29(水) 05:02:37.42ID:E4T3mNp50 戻り値ないならsubでいいじゃんって話だと思うんだけど俺も一応はそう思う
昔はsubばかりで書いてた
subは単体で実行できるけどfunctionは単体では実行できないという違いがある
functionは他から呼び出さないと実行できないという意味でね。
ここからは俺の好みみたいなもんだけど、
ボタンに直結してるようなエントリーポイント的なものは
subで書いて、それ以外、特に引数を受けとって処理するものは
単体では実行できないことを明確にする意味で全てfunctionにしてる
そう論理的で整合性のある区分というわけではないんだけど。
昔はsubばかりで書いてた
subは単体で実行できるけどfunctionは単体では実行できないという違いがある
functionは他から呼び出さないと実行できないという意味でね。
ここからは俺の好みみたいなもんだけど、
ボタンに直結してるようなエントリーポイント的なものは
subで書いて、それ以外、特に引数を受けとって処理するものは
単体では実行できないことを明確にする意味で全てfunctionにしてる
そう論理的で整合性のある区分というわけではないんだけど。
429デフォルトの名無しさん (ブーイモ MMcb-cspy)
2019/05/29(水) 08:46:31.68ID:WZbm0MMEM >>428
単体で実行できるかどうかはSub/Function の差じゃなくて、引数を取る/取らないの差じゃなかったっけ?
単体で実行できるかどうかはSub/Function の差じゃなくて、引数を取る/取らないの差じゃなかったっけ?
430デフォルトの名無しさん (ワッチョイ bf68-dCWx)
2019/05/29(水) 08:57:09.71ID:dT9QfEjx0431デフォルトの名無しさん (ワッチョイ bf68-dCWx)
2019/05/29(水) 08:58:24.42ID:dT9QfEjx0 あと、実行可能かどうかはpublic/privateで切り分けるべきだろう
432デフォルトの名無しさん (ワッチョイ bf02-vAXu)
2019/05/29(水) 09:10:25.71ID:QQeifizk0 セルに式として関数を入力して呼べるFunctionと呼べないSub
433デフォルトの名無しさん (ワッチョイ bf68-dCWx)
2019/05/29(水) 09:17:16.17ID:dT9QfEjx0434デフォルトの名無しさん (ワッチョイ bf68-dCWx)
2019/05/29(水) 09:30:42.49ID:dT9QfEjx0 基本はfunction
スクリプトとして何かをさせたい時にだけsubで定義する。C言語で言うint main(){}
戻り値や引数のありなしでは切り分けない
と考えると自然と思うんだけど、どうだろう
この考えだと、private subは使うべきじゃないって事になる
スクリプトとして何かをさせたい時にだけsubで定義する。C言語で言うint main(){}
戻り値や引数のありなしでは切り分けない
と考えると自然と思うんだけど、どうだろう
この考えだと、private subは使うべきじゃないって事になる
435デフォルトの名無しさん (ワッチョイ 07f9-IeET)
2019/05/29(水) 10:59:47.52ID:bJuQUiqr0 別に良いんだよ何を使おうと、まあ好きにすればって程度
まあ、ただ論理的に考えずごみを量産するやつはいるな
まあ、ただ論理的に考えずごみを量産するやつはいるな
436デフォルトの名無しさん (ブーイモ MMcb-dCWx)
2019/05/29(水) 11:30:55.13ID:zbMbGE8SM437デフォルトの名無しさん (ブーイモ MMcb-cspy)
2019/05/29(水) 11:31:54.96ID:WZbm0MMEM Excel長老の話って知ってる?
438デフォルトの名無しさん (ブーイモ MMcb-cspy)
2019/05/29(水) 11:32:51.36ID:WZbm0MMEM >>436
メモリ効率ってネタだよね?
メモリ効率ってネタだよね?
439デフォルトの名無しさん (ブーイモ MMcb-dCWx)
2019/05/29(水) 11:39:17.00ID:zbMbGE8SM >>433
今から40年以上前、それまでのシーケンシャルなプログラムでは能率が悪いから構造化しようという話しが出て、その時に提唱されたのが「手続き(Sub)」と「関数(Function)」という概念
しかし、教育用として作られたPascalという言語では忠実に実装されたけど、C言語には関数しか用意されなかったし、その後に登場したJavaも関数しかない
結局は言語を設計した人のリテラシーというか、単なる好みで決まったようなもん
今でもたくさんの言語が乱立してるのは、結局はみんな「ぼくの考えたさいきょうのげんご」が作りたいだけと思って、あながち間違いじゃない
今から40年以上前、それまでのシーケンシャルなプログラムでは能率が悪いから構造化しようという話しが出て、その時に提唱されたのが「手続き(Sub)」と「関数(Function)」という概念
しかし、教育用として作られたPascalという言語では忠実に実装されたけど、C言語には関数しか用意されなかったし、その後に登場したJavaも関数しかない
結局は言語を設計した人のリテラシーというか、単なる好みで決まったようなもん
今でもたくさんの言語が乱立してるのは、結局はみんな「ぼくの考えたさいきょうのげんご」が作りたいだけと思って、あながち間違いじゃない
440デフォルトの名無しさん (ブーイモ MMcb-dCWx)
2019/05/29(水) 11:41:11.71ID:zbMbGE8SM >>438
ネタじゃないよ
リカーシブなプログラムを書いてみればすぐわかる
VBAでもFunctionは呼び出すたびにヒープを最低4バイトずつ消費するから、再帰の最大回数が少ないのは簡単な実験ですぐに確認できる
ネタじゃないよ
リカーシブなプログラムを書いてみればすぐわかる
VBAでもFunctionは呼び出すたびにヒープを最低4バイトずつ消費するから、再帰の最大回数が少ないのは簡単な実験ですぐに確認できる
441デフォルトの名無しさん (ブーイモ MMcb-cspy)
2019/05/29(水) 11:48:47.33ID:WZbm0MMEM >>440
「ヒープ」ってネタだよね?
「ヒープ」ってネタだよね?
442デフォルトの名無しさん (ワッチョイ bf68-dCWx)
2019/05/29(水) 11:53:59.73ID:dT9QfEjx0443デフォルトの名無しさん (ブーイモ MMcb-dCWx)
2019/05/29(水) 11:58:48.77ID:zbMbGE8SM 簡単な実験
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
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デフォルトの名無しさん (ワンミングク MMbf-/67I)
2019/05/29(水) 13:23:20.90ID:AfH1iVf/M Selenium+vbaを使って
ChromeでWebページをPDF保存することは可能でしょうか?
ChromeでWebページをPDF保存することは可能でしょうか?
445デフォルトの名無しさん (ワッチョイ bf68-dCWx)
2019/05/29(水) 13:29:26.76ID:dT9QfEjx0446デフォルトの名無しさん (スプッッ Sd7f-cMWe)
2019/05/29(水) 13:43:28.26ID:aQ2xiGWFd >>442
だから構造的に考えて意味的にFunctionが適するかSubが適するかを選択するんだ。
意味的にというのは人間の感覚にとって合った方を採用すべきということ。
Cだってvoidがあるじゃねーの。
無理矢理1を返すとかすれば戻り値が絶対に必要な言語設計だってできた筈。
なんでvoidがあるかといえば、やっぱり意味的に戻り値無しが人間にとってピッタリ来ることがあるからだと思うが。
だから構造的に考えて意味的にFunctionが適するかSubが適するかを選択するんだ。
意味的にというのは人間の感覚にとって合った方を採用すべきということ。
Cだってvoidがあるじゃねーの。
無理矢理1を返すとかすれば戻り値が絶対に必要な言語設計だってできた筈。
なんでvoidがあるかといえば、やっぱり意味的に戻り値無しが人間にとってピッタリ来ることがあるからだと思うが。
447デフォルトの名無しさん (アウアウウー Saab-m12E)
2019/05/29(水) 15:03:19.55ID:eVQzoh+sa 処理結果をpublicで判断するよりは
値を返すほうが使いやすい
値を返すほうが使いやすい
448デフォルトの名無しさん (ワッチョイ c7ce-dCWx)
2019/05/29(水) 17:40:58.36ID:S0wmSPvZ0 プログラムを一人で作って自分だけが永遠に保守するなら好きなように作ればいい
大規模なアプリをチームで作ったり、他人が修正したりする時には間違いを起こさないようにルールを決める必要があって、
経験上、カプセル化した方が結果的に安全で能率がいいということになっている
そのための手法の一つが変数のスコープを狭くすること、グローバル変数は使わないこと、なんだな
だから結果はどこかの変数に入れるんじゃなくてFunctionで返すんだよ
複数の値を返したいなら設計を見直すべきで、構造体を使うか、1つずつFunctionを分けるか考える
大規模なアプリをチームで作ったり、他人が修正したりする時には間違いを起こさないようにルールを決める必要があって、
経験上、カプセル化した方が結果的に安全で能率がいいということになっている
そのための手法の一つが変数のスコープを狭くすること、グローバル変数は使わないこと、なんだな
だから結果はどこかの変数に入れるんじゃなくてFunctionで返すんだよ
複数の値を返したいなら設計を見直すべきで、構造体を使うか、1つずつFunctionを分けるか考える
449デフォルトの名無しさん (ワントンキン MMbf-/67I)
2019/05/29(水) 18:50:10.49ID:b/xKBA/BM450デフォルトの名無しさん (ワッチョイ bf68-dCWx)
2019/05/29(水) 18:57:16.16ID:dT9QfEjx0451デフォルトの名無しさん (ブーイモ MMcb-xWF7)
2019/05/29(水) 19:33:05.85ID:gbtQDfh8M seleniumってもう使い物にならなくなってなかったっけ
452デフォルトの名無しさん (ワッチョイ ea2f-n0I8)
2019/05/30(木) 00:50:17.75ID:oM5Ks3kV0 >>440
ヒープとスタックの違い理解してる?
ヒープとスタックの違い理解してる?
453デフォルトの名無しさん (アウアウウー Sa1f-gQC1)
2019/05/30(木) 03:19:10.04ID:1qsenVBka byref もあるしな
454デフォルトの名無しさん (ワッチョイ 3ff9-nuIz)
2019/05/30(木) 08:21:00.17ID:oyMl0bcF0455デフォルトの名無しさん (ブーイモ MMd6-ERtf)
2019/05/30(木) 12:02:16.59ID:fCKFoHR/M 使うスタック量によって再帰での有利不利って理屈の上ではあるだろうけど
現実的な意味ってあるの?
条件によってスタックオーバーフローする「かもしれない」プログラムに対して
引数や返り値を考慮とか再帰深度に気を使うとか、ちょっとVBAで考えられないんですけど
現実的な意味ってあるの?
条件によってスタックオーバーフローする「かもしれない」プログラムに対して
引数や返り値を考慮とか再帰深度に気を使うとか、ちょっとVBAで考えられないんですけど
456デフォルトの名無しさん (オッペケ Sr33-NT0q)
2019/05/30(木) 12:25:00.74ID:0nKLhIYFr >>454
SubとFunctionでメモリ効率の違い考慮するレベルなら
SubとFunctionでメモリ効率の違い考慮するレベルなら
457デフォルトの名無しさん (ドコグロ MM8a-RdrM)
2019/05/30(木) 12:31:21.82ID:NTWA4E5yM458デフォルトの名無しさん (ワッチョイ 3ff9-nuIz)
2019/05/30(木) 15:33:21.51ID:oyMl0bcF0459デフォルトの名無しさん (アウアウカー Sa7b-K02T)
2019/05/30(木) 18:56:24.47ID:86kk1xI3a ここできいていいのか分かりませんがマクロの組み方で教えてください
「=5月シートA1」
「=5月シートA2」
みたいに引っ張っているセルを
「=6月シートA1」
「=6月シートA2」
みたいに変えるマクロを組みたいんですが
それを毎月自動で7月、8月、と月に合わせて変えるのはどうやるのですか?
理想としては、5月と書いてあるセルを6月と入力し、そのセルをコピペしていくマクロを組みたいのですが、その流れを作っても元の5月だけがコピペされてしまう状態です。
説明が下手ですみません。
「=5月シートA1」
「=5月シートA2」
みたいに引っ張っているセルを
「=6月シートA1」
「=6月シートA2」
みたいに変えるマクロを組みたいんですが
それを毎月自動で7月、8月、と月に合わせて変えるのはどうやるのですか?
理想としては、5月と書いてあるセルを6月と入力し、そのセルをコピペしていくマクロを組みたいのですが、その流れを作っても元の5月だけがコピペされてしまう状態です。
説明が下手ですみません。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国国営メディア「沖縄は日本ではない」… ★2 [BFU★]
- 中国国営メディア「沖縄は日本ではない」… ★3 [BFU★]
- 高市政権にパイプ役不在…日中高まる緊張 公明党の連立離脱影響、自民内にも懸念「自分でまいた種は自分で刈り取ってもらわないと」 [ぐれ★]
- 小野田氏、”中国経済への依存“に警戒感 高市首相の国会答弁巡り [煮卵★]
- 【サッカー】独占入手 最年長JリーガーにW不倫疑惑 『お風呂覗きたいんですが笑』LINE流出も… 慰謝料トラブルを本人に直撃 [冬月記者★]
- 【こんなの初めて…】民泊には既にキャンセルも 中国の渡航自粛で [ぐれ★]
- 【画像】セクシー女優・天沢りんさん「お休み頂いてた半年間でこんな体になりました🪽🤍」👉予想通りの展開に [242521385]
- 中国国営放送「日本は琉球をただちに中国に返還せよ」 キタ━━━━(゚∀゚)━━━━!!!!! [314039747]
- 三嶋由紀夫ってネトウヨだったの? [633473628]
- とうすこ🏡愛され絵文字♡🤥👊😅👊👶♡
- お昼休みなので>>2のキャラをかいてあそぶ
- 【高市悲報】アメリカ戦争省「あのさ、何回シミュレートしてもわーくに中国に負けちゃうんだよね🤗」 [359965264]
