!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/4bMj0344デフォルトの名無しさん (ワッチョイ bf68-dCWx)
2019/05/27(月) 07:55:59.33ID:6csejWaN0 >>343
どんなものを考えているんだ
どんなものを考えているんだ
345デフォルトの名無しさん (ササクッテロ Sp5b-hkBF)
2019/05/27(月) 08:12:50.88ID:lha2yOvQp >>343
ごめん入力フォームじゃなくていいかも
最終的にやりたいことは、以下のボタン等が設置されたユーザーフォームを作ることです(他の要素も考えたら普通にinput boxでは無理と気づきました)
・AUTO openで開く
・押すと特定セルに文字が入力されるボタンを複数設置する
・カレンダーを設置する
・押すと印刷処理を行いつつファイルを上書き保存し閉じるボタンを設置する
ごめん入力フォームじゃなくていいかも
最終的にやりたいことは、以下のボタン等が設置されたユーザーフォームを作ることです(他の要素も考えたら普通にinput boxでは無理と気づきました)
・AUTO openで開く
・押すと特定セルに文字が入力されるボタンを複数設置する
・カレンダーを設置する
・押すと印刷処理を行いつつファイルを上書き保存し閉じるボタンを設置する
346デフォルトの名無しさん (アメ MMcb-bNEy)
2019/05/27(月) 08:30:52.72ID:jh6nOFVKM347デフォルトの名無しさん (アメ MMcb-bNEy)
2019/05/27(月) 08:37:02.21ID:jh6nOFVKM Excelの勉強不足だろ
348デフォルトの名無しさん (ワッチョイ bf68-dCWx)
2019/05/27(月) 08:47:00.50ID:6csejWaN0349デフォルトの名無しさん (ワッチョイ 07f9-IeET)
2019/05/27(月) 09:45:56.73ID:W0zr6KdF0 この程度の理解力だとカレンダーが必要かもわからない
カレンダーなんか別にシートでもできるけど、どこまで使うかがわからないから
最適な解もわからない
入力をシートに反映するなんて普通にセルを参照すればいいだけ
ExcelもVBAも1%以下の理解で動作仕様を描くのではなく結果で何をしたいかを描くべき
これでも少しおだててるが
カレンダーなんか別にシートでもできるけど、どこまで使うかがわからないから
最適な解もわからない
入力をシートに反映するなんて普通にセルを参照すればいいだけ
ExcelもVBAも1%以下の理解で動作仕様を描くのではなく結果で何をしたいかを描くべき
これでも少しおだててるが
350デフォルトの名無しさん (ワッチョイ bf68-dCWx)
2019/05/27(月) 10:37:56.08ID:6csejWaN0 おだてるの意味間違えてるよ。
351デフォルトの名無しさん (ワッチョイ 07f9-IeET)
2019/05/27(月) 10:41:41.92ID:W0zr6KdF0352デフォルトの名無しさん (ワッチョイ df01-Fpyl)
2019/05/27(月) 11:25:38.71ID:bVlhmZqp0353デフォルトの名無しさん (ブーイモ MMcb-xIO9)
2019/05/27(月) 11:44:36.09ID:dknccbkiM354デフォルトの名無しさん (ワッチョイ bf68-dCWx)
2019/05/27(月) 13:50:33.03ID:6csejWaN0 >>352
どういうパターンであれ、大体ロクでも無い物だという判定ぐらいなら可能
どういうパターンであれ、大体ロクでも無い物だという判定ぐらいなら可能
355デフォルトの名無しさん (ワッチョイ 8791-cMWe)
2019/05/27(月) 14:00:43.29ID:zUYqf9yC0 >>345
ここの人達はマウント取りたいだけで実際はあまりスキルが無い人が大半なので程々に聞いていた方が良い。
あなたの要望については疑問が1つ、可能だけどあなたのスキルから考えて技術的に難しい点が1つある。
疑問は、AutoOpenで開いて、閉じるボタンで保存終了するのならExcelで作る必要は無いのでは?という疑問。
普通にC#辺りで作った方が適してると思う。この後に述べるけど、カレンダーの件もC#等の方が簡単。
技術的に難しいのはカレンダーの実現。
サブクラスとWin32の知識が無いと難しい。
後々を考えると汎用的にクラス作った方が良いからそういう技術も必要。
もっとも、ファイル追加とか自作するとかで良ければスキルが無くても出来るともいえる。
ここの人達はマウント取りたいだけで実際はあまりスキルが無い人が大半なので程々に聞いていた方が良い。
あなたの要望については疑問が1つ、可能だけどあなたのスキルから考えて技術的に難しい点が1つある。
疑問は、AutoOpenで開いて、閉じるボタンで保存終了するのならExcelで作る必要は無いのでは?という疑問。
普通にC#辺りで作った方が適してると思う。この後に述べるけど、カレンダーの件もC#等の方が簡単。
技術的に難しいのはカレンダーの実現。
サブクラスとWin32の知識が無いと難しい。
後々を考えると汎用的にクラス作った方が良いからそういう技術も必要。
もっとも、ファイル追加とか自作するとかで良ければスキルが無くても出来るともいえる。
356デフォルトの名無しさん (ブーイモ MMcb-xIO9)
2019/05/27(月) 14:36:42.16ID:dknccbkiM >>355
この人はマウント取りたいだけで実際はあまりスキルが無い人なので程々に聞いていた方が良い。
この人はマウント取りたいだけで実際はあまりスキルが無い人なので程々に聞いていた方が良い。
357デフォルトの名無しさん (スプッッ Sd7f-cMWe)
2019/05/27(月) 14:38:46.48ID:YnNlAtYud >>356
そうくると思ったw
そうくると思ったw
358デフォルトの名無しさん (ワッチョイ 07f9-IeET)
2019/05/27(月) 14:55:28.65ID:W0zr6KdF0 >>355
具体的に簡単にできる方法を説明してやれよ
具体的に簡単にできる方法を説明してやれよ
359デフォルトの名無しさん (ワッチョイ bf68-dCWx)
2019/05/27(月) 14:59:26.84ID:6csejWaN0360デフォルトの名無しさん (ワッチョイ 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
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★2 [ぐれ★]
- 【中国局長】両国関係に「深刻な影響」 首相発言の撤回要求 [蚤の市★]
- 【卓球】早田ひな、「総額100万スられた」「ずっと憧れていたスペインとイタリア…」ヨーロッパ旅行で悲劇 スリ被害を告白 [muffin★]
- 外務省局長は無言で厳しい表情…日中の高官協議終了か 高市首相“台湾”発言で中国が強硬対応 発言撤回求めたか…★3 [BFU★]
- 【インバウンド】中国人観光客の日本での消費額は年間約2兆円超…中国政府は公務員の出張取り消し [1ゲットロボ★]
- 日経平均の下落率3%超す、財政懸念で長期金利上昇 ★2 [お断り★]
- 【実況】博衣こよりのえちえち歌枠🧪★2
- 産経新聞「高市早苗の答弁さぁ……思慮が足りてなくね?官僚と詰めずに思いつきで話しているでしょ」 [175344491]
- 【高市速報】日本人の3割「中国への武力行使に踏み切る必要がある」ANN世論調査 [931948549]
- 【画像】外務省局長「この度はうちの🦎がすみません…」中国「……」 [165981677]
- 【雑談】暇人集会所part18
- 外務省局長、よくわからないまま帰国へ [834922174]
