!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
↑2行に減ってるけど、同じ内容を3行に増やして貼り付けるナリ
ExcelのVBAに関する質問スレナリ
コード書き込みや作成依頼もOKナリ
※前スレ
Excel VBA 質問スレ Part74
https://mevius.5ch.net/test/read.cgi/tech/1639932059/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
探検
Excel VBA 質問スレ Part75
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (スフッ Sd7f-wadS)
2022/02/09(水) 14:24:32.62ID:I0u44nFvd777デフォルトの名無しさん (ワッチョイ e2da-vtdv)
2022/04/12(火) 21:13:36.65ID:cLFsXNmb0 そのままのエラー文でググれば一発で回答出てくるぢゃねーか
778デフォルトの名無しさん (ワッチョイ e24f-EtAN)
2022/04/12(火) 21:30:37.91ID:t+9U/8lg0 >>776
SQLのケツに;付けろってよ
SQLのケツに;付けろってよ
779デフォルトの名無しさん (ワッチョイ 7ba5-mmuM)
2022/04/13(水) 01:24:31.19ID:idY8HIbz0 757です、いろいろご意見ありがとうございます
その後考えた結果、シートのオブジェクト名を変数として代入しようとした名前に変えればいいんじゃないかと思いついたんですが問題ないでしょうか
その後考えた結果、シートのオブジェクト名を変数として代入しようとした名前に変えればいいんじゃないかと思いついたんですが問題ないでしょうか
780デフォルトの名無しさん (ワッチョイ e24f-EtAN)
2022/04/13(水) 03:33:56.70ID:+aMOkW0p0 >>779
シチュエーションにもよるかな。
シート名を変えられてもそのシートを使う前提であればそれでいいんじゃないかな。
その場合、
自ブックのシートであれば
Dim targetSheet As Worksheet
Set targetSeet = 変更後のシートオブジェクト名
みたいに使えるし、
他ブックのシートを扱う場合は
Dim targetSheet As Worksheet
Set targetSheet = ブックオブジェクト.(シートオブジェクト.Name)
みたいに書けば設定出来る。
もっとも、後者の書き方で前者を賄えるから後者だけ関数化してそれを使い回してもいいけどね。
シチュエーションにもよるかな。
シート名を変えられてもそのシートを使う前提であればそれでいいんじゃないかな。
その場合、
自ブックのシートであれば
Dim targetSheet As Worksheet
Set targetSeet = 変更後のシートオブジェクト名
みたいに使えるし、
他ブックのシートを扱う場合は
Dim targetSheet As Worksheet
Set targetSheet = ブックオブジェクト.(シートオブジェクト.Name)
みたいに書けば設定出来る。
もっとも、後者の書き方で前者を賄えるから後者だけ関数化してそれを使い回してもいいけどね。
781デフォルトの名無しさん (ワッチョイ 7b68-xb3m)
2022/04/13(水) 07:03:06.30ID:CoVp5Ukt0 >>779
オブジェクト名はやめたほうが良い。あんまり意味が無い
やるなら、シートの内容を変数名にする
ローマ字
set shain_master = sheet("社員マスター")
日本語許容するなら
set 社員マスタ = sheet("社員マスター")
なおベストは英語
オブジェクト名はやめたほうが良い。あんまり意味が無い
やるなら、シートの内容を変数名にする
ローマ字
set shain_master = sheet("社員マスター")
日本語許容するなら
set 社員マスタ = sheet("社員マスター")
なおベストは英語
782デフォルトの名無しさん (ブーイモ MM93-jTyu)
2022/04/13(水) 07:35:12.98ID:6wqio091M 会社員を英語でなんと言うかがわからんわ
worker(労働者)やemployee(被雇用者)じゃニュアンスが違うしー
辞書なしですぐ出てくるレベルのやつはVBAなんかやってないやろ、という偏見
worker(労働者)やemployee(被雇用者)じゃニュアンスが違うしー
辞書なしですぐ出てくるレベルのやつはVBAなんかやってないやろ、という偏見
783デフォルトの名無しさん (ワッチョイ 7b68-xb3m)
2022/04/13(水) 07:37:38.41ID:CoVp5Ukt0 staffでええやろ
784デフォルトの名無しさん (ワッチョイ e24f-EtAN)
2022/04/13(水) 07:50:17.55ID:+aMOkW0p0785デフォルトの名無しさん (スプッッ Sd7a-jTyu)
2022/04/13(水) 07:56:48.50ID:HWn/7Hddd Google翻訳だとmember
んー、なんかしっくり来ない
んー、なんかしっくり来ない
786デフォルトの名無しさん (ワッチョイ 43ce-jTyu)
2022/04/13(水) 07:59:18.64ID:PsKYJxH90 staffは関係者ってイメージ
787デフォルトの名無しさん (スフッ Sd02-jTyu)
2022/04/13(水) 08:15:50.97ID:1kKv9jFRd staffという単語はcompanyと同義で集団に対して使うって日本人は意外とわかってない
788デフォルトの名無しさん (ワッチョイ 7b68-xb3m)
2022/04/13(水) 08:30:55.20ID:CoVp5Ukt0 employee以外ないだろう
789デフォルトの名無しさん (スプッッ Sd22-eTSu)
2022/04/13(水) 08:56:08.44ID:wBIIYhTid 会社員という表現は英語では難しい
大人しく syachiku か Karoushi_Man にしとけ
大人しく syachiku か Karoushi_Man にしとけ
790デフォルトの名無しさん (ブーイモ MM02-CB6w)
2022/04/13(水) 09:04:23.41ID:YJgAVhDkM 業務用語の変数は日本語で業務用語そのものを使ってる
中途半端な英語だと誤解しやすいし、ローマ字は読みづらい
中途半端な英語だと誤解しやすいし、ローマ字は読みづらい
791デフォルトの名無しさん (ワッチョイ e2da-vtdv)
2022/04/13(水) 10:04:01.74ID:NHlBNLdW0 Accessならお馴染みの「Northwind」のテーブルでは Employee List とか Employee Details
概念としての会社員ではなく、自社の社員リストなので「従業員・使用人」の意で
ま、そのファイルを誰が見る?誰が使う?どこに出す?で適宜に 恥かかない程度で 何だっていいんだろうけれども
概念としての会社員ではなく、自社の社員リストなので「従業員・使用人」の意で
ま、そのファイルを誰が見る?誰が使う?どこに出す?で適宜に 恥かかない程度で 何だっていいんだろうけれども
792デフォルトの名無しさん (ワッチョイ df01-ebI4)
2022/04/13(水) 10:09:02.25ID:93SXwTUS0 リーマンが和製英語からすでに世界に浸透してる
793デフォルトの名無しさん (ブーイモ MM02-mmuM)
2022/04/13(水) 10:28:39.30ID:Wmi1ga+iM ワークマン
794デフォルトの名無しさん (ワッチョイ 7fda-NgXG)
2022/04/13(水) 11:06:56.09ID:BozzLOUH0 ワークマンは流行りよ
795デフォルトの名無しさん (スップ Sd22-2p/j)
2022/04/13(水) 12:58:38.46ID:7IxClg8bd 緊急です!
マクロの入ったボタンが図だかイラストになってしまい困ってます。
直し方のアドバイスお願いします。
マクロの入ったボタンが図だかイラストになってしまい困ってます。
直し方のアドバイスお願いします。
796デフォルトの名無しさん (ワッチョイ 6711-LXkm)
2022/04/13(水) 13:07:23.24ID:zDnWB3YN0797デフォルトの名無しさん (ワッチョイ 2349-btYf)
2022/04/13(水) 13:09:58.08ID:Wntan1Ql0 こういうの30分一万円無保証とかで稼げないかな
798デフォルトの名無しさん (ワッチョイ e24f-EtAN)
2022/04/13(水) 13:57:45.74ID:+aMOkW0p0 >>795
もうその図からマクロ実行させちゃえばいいじゃん
もうその図からマクロ実行させちゃえばいいじゃん
799デフォルトの名無しさん (ワッチョイ e202-7fC7)
2022/04/13(水) 14:00:17.02ID:uBZa/q6E0 ■質問
サウンド再生は何通りかあるけど、
一番遅延が小さい方法は何ですか?
winmmのPlaySound ?
サウンド再生は何通りかあるけど、
一番遅延が小さい方法は何ですか?
winmmのPlaySound ?
800デフォルトの名無しさん (テテンテンテン MM8e-2p/j)
2022/04/13(水) 14:08:46.36ID:6qNApkxLM801デフォルトの名無しさん (ワッチョイ 43a6-mtZy)
2022/04/13(水) 15:42:21.02ID:7cmYTCQn0 3時間くらいかけてVBA作って、合間に別のエクセルファイル開いて、閉じようとしたら
「変更を保存しますか?」って出たので、保存せずに閉じたら。
VBAを作った方のファイルまで変更保存せずに閉じられてしまったーーー!!
どうにかならない?
「変更を保存しますか?」って出たので、保存せずに閉じたら。
VBAを作った方のファイルまで変更保存せずに閉じられてしまったーーー!!
どうにかならない?
802デフォルトの名無しさん (スップ Sd22-2p/j)
2022/04/13(水) 15:45:55.22ID:7IxClg8bd とりあえず顧客に頭を下げてFAXでリスト送って頂いたのでしばらくはなんとかなりそうですがエクセルファイル自体のトラブルについては全員サッパリ意味不明なためどうしようも無さそうです…
(エクセルファイル作った方自身が既に会社にいないのでどうしようもない)
とりあえずエクセルファイルがどうする事もできないため私と社長ら数名は土日も休日出勤して1月から4月までの記録も全部紙ベースの資料に手書きで書き写す事になりそうです
しばらくは紙とペンでのアナログなやり方で回すしかないですがアドバイスくださった方ありがとうございました
(エクセルファイル作った方自身が既に会社にいないのでどうしようもない)
とりあえずエクセルファイルがどうする事もできないため私と社長ら数名は土日も休日出勤して1月から4月までの記録も全部紙ベースの資料に手書きで書き写す事になりそうです
しばらくは紙とペンでのアナログなやり方で回すしかないですがアドバイスくださった方ありがとうございました
803デフォルトの名無しさん (ワッチョイ c6da-EhK1)
2022/04/13(水) 17:20:07.59ID:SMVlXKyy0 >>801
3時間くらいなら今からやれよ
3時間くらいなら今からやれよ
804デフォルトの名無しさん (ワッチョイ 068e-pUVk)
2022/04/13(水) 17:28:47.62ID:MldHjaMW0805デフォルトの名無しさん (ブーイモ MM02-mmuM)
2022/04/13(水) 17:42:34.06ID:Wmi1ga+iM >>801
該当のファイルを開いた状態でファイルタブのどこかにある自動保存云々が書いてある場所を探せ
運が良ければ一時ファイルが残ってる
残ってなけりゃ諦めろ
次からは動作確認をする前に保存する癖をつけるようにするんだな
該当のファイルを開いた状態でファイルタブのどこかにある自動保存云々が書いてある場所を探せ
運が良ければ一時ファイルが残ってる
残ってなけりゃ諦めろ
次からは動作確認をする前に保存する癖をつけるようにするんだな
806デフォルトの名無しさん (ワッチョイ cb5f-5i8i)
2022/04/13(水) 19:21:42.96ID:9TA12m3K0 >>801
これがあるからコーティング中はOneDriveに置いとる
これがあるからコーティング中はOneDriveに置いとる
807デフォルトの名無しさん (スプッッ Sd22-eTSu)
2022/04/13(水) 21:38:12.45ID:wBIIYhTid >>805
何で誰でも言える極々普通のアドバイスをこんなに上から目線で言えるんだろう
何で誰でも言える極々普通のアドバイスをこんなに上から目線で言えるんだろう
808デフォルトの名無しさん (ワッチョイ 1b17-mmuM)
2022/04/13(水) 21:47:36.66ID:MBul3VW80 便所の落書きにいちいち目くじら立てて突っ掛かるなよ
より一層老けて見えるぞ
より一層老けて見えるぞ
809デフォルトの名無しさん (ワッチョイ 9bda-EhK1)
2022/04/13(水) 22:55:33.89ID:uonj2wEf0 全国10エリアのそれぞれに、2016年度から6か年度分の「各年度集計用book」があり、
中身は1時間値と月合計を集計する等のクエリーが17あって、
これをsheet上のクエリーリストを基に
For Nextで順次更新・上書き保存するVBAを仕込んであります。
これとは別に、各エリアごとにやはりbookのフルパスリストを基に
For Nextで「各年度集計用book」を順次開いて、
中のVBAを実行するよう仕込んだ「各エリア一括更新book」を作りました。
(今さら2016年度を再集計するのは、たまにシレーッと修正が訴求修正が入るため)
これまで10ヶ月間ほどの月次更新では問題もなく動いてきたのですが、今月の更新で
・sheet名とクエリー名によるクエリー更新のステップでデバックエラーで止まった
・2つ目2017年度あたりのbookをVBAで開いたと思ったら、Excelごと落ちた
となり、不安定になりました。
モジュールごと再構成たり、「各年度用集計book」クエリー計算を簡略化して17ステップに削減したりして、
・タスクマネージャーでは動作中のメモリーは最大10GB/32GBくらい、CPU使用率は最大60%弱
・1つの「各年度集計用book」の所要時間に30秒程度
まで軽量化したのですが、今後もbook数が増えることを考えると
何か工夫のしどころはないものかと。
自分で気になっているのは、6か年度分のbook更新がどうにか上手くいっても、
「各エリア一括更新book」のプロジェクトに、
済んだはずの「各年度集計用book」の情報が残っていること。
https://i.imgur.com/BvkH6sr.png
よく分からないけれど、VBAが扱えるインスタンス数を超過しているのか?
これが残っていて良いのか、よくわかりません。
・Set wb = Workbooks.Open で開いて
・wb.Close SaveChanges:=True で上書き保存して閉じているのですが、
・For Next内で済んだ変数はできる限りNothingで開放
していますが、改善の余地はありますか?
中身は1時間値と月合計を集計する等のクエリーが17あって、
これをsheet上のクエリーリストを基に
For Nextで順次更新・上書き保存するVBAを仕込んであります。
これとは別に、各エリアごとにやはりbookのフルパスリストを基に
For Nextで「各年度集計用book」を順次開いて、
中のVBAを実行するよう仕込んだ「各エリア一括更新book」を作りました。
(今さら2016年度を再集計するのは、たまにシレーッと修正が訴求修正が入るため)
これまで10ヶ月間ほどの月次更新では問題もなく動いてきたのですが、今月の更新で
・sheet名とクエリー名によるクエリー更新のステップでデバックエラーで止まった
・2つ目2017年度あたりのbookをVBAで開いたと思ったら、Excelごと落ちた
となり、不安定になりました。
モジュールごと再構成たり、「各年度用集計book」クエリー計算を簡略化して17ステップに削減したりして、
・タスクマネージャーでは動作中のメモリーは最大10GB/32GBくらい、CPU使用率は最大60%弱
・1つの「各年度集計用book」の所要時間に30秒程度
まで軽量化したのですが、今後もbook数が増えることを考えると
何か工夫のしどころはないものかと。
自分で気になっているのは、6か年度分のbook更新がどうにか上手くいっても、
「各エリア一括更新book」のプロジェクトに、
済んだはずの「各年度集計用book」の情報が残っていること。
https://i.imgur.com/BvkH6sr.png
よく分からないけれど、VBAが扱えるインスタンス数を超過しているのか?
これが残っていて良いのか、よくわかりません。
・Set wb = Workbooks.Open で開いて
・wb.Close SaveChanges:=True で上書き保存して閉じているのですが、
・For Next内で済んだ変数はできる限りNothingで開放
していますが、改善の余地はありますか?
811デフォルトの名無しさん (ワッチョイ df01-ebI4)
2022/04/14(木) 08:48:02.28ID:jf4kHNax0812デフォルトの名無しさん (ワッチョイ 06b0-oahs)
2022/04/14(木) 09:46:20.53ID:EGNxXvqd0 >>809
マクロを1つの専用ブックにまとめてみたら
マクロを1つの専用ブックにまとめてみたら
813デフォルトの名無しさん (ワッチョイ 123d-P+J3)
2022/04/14(木) 13:25:49.47ID:E7ePXpuT0 VBAで他ブックのプロシージャを実行したいんだけど、実行まちをなくすことてできる?
Application.Run "Book2!Test2"
を実行したあと、"Book2!Test2"の処理終了を待たずに次の行に移りたいんだが。
Application.Run "Book2!Test2"
を実行したあと、"Book2!Test2"の処理終了を待たずに次の行に移りたいんだが。
814デフォルトの名無しさん (ワッチョイ 4349-K8WP)
2022/04/14(木) 13:53:36.44ID:TZzbtw0W0 非同期は無理
試してないけど、別のApplicationインスタンスを作成して
そちらでファイルを読み込んで実行とか
試してないけど、別のApplicationインスタンスを作成して
そちらでファイルを読み込んで実行とか
815デフォルトの名無しさん (ワッチョイ cb5f-49CF)
2022/04/14(木) 18:58:30.99ID:RElcaA4D0 メソッドを使い回したいときはクラスを別のクラスに参照渡ししてるんだけど、これってVBAに継承があれば機能的に処理できるのか
816デフォルトの名無しさん (ラクッペペ MM8e-hh9d)
2022/04/14(木) 19:03:41.33ID:sxqTZKvqM クラスのメンバーに他のクラスを入れるのがマイルド
817デフォルトの名無しさん (ワッチョイ cb5f-49CF)
2022/04/14(木) 19:25:43.40ID:RElcaA4D0 いいね
それ試してみよう
それ試してみよう
818デフォルトの名無しさん (ワッチョイ 17e6-a5Vw)
2022/04/14(木) 20:26:12.03ID:VI/N1Akx0 >>816
継承を委譲で置き換える、というだけですね…
継承を委譲で置き換える、というだけですね…
819デフォルトの名無しさん (アークセー Sx5f-sKUf)
2022/04/14(木) 21:25:22.08ID:YCtpuDrNx 参照設定なしでエクセルからアクセスファイルの操作をしようとしているのですが
フィールド定義の構文エラーが出ます。
テーブルの登録数を減らすと通りますが
上限か何かに引っかかっているのでしょうか?
Sub Test()
Dim CN As Object
Set CN = CreateObject("ADODB.Connection")
CN.Open "Provider = Microsoft.ACE.OLEDB.12.0; Data Source =" & "C:\Users\Downloads\データ.accdb"
CN.Execute "CREATE TABLE TBL(管理 INT,日付 DATE,番号 INT,内容 MEMO,担当 MEMO,OrderTeam MEMO,Place MEMO,Floor MEMO,GuestNum INT,種別 MEMO,物品 MEMO,対象 MEMO,状態 MEMO,時間1 MEMO,時間2 MEMO,Note MEMO,Total MEMO);"
CN.Close
MsgBox "作成しました。"
End Sub
フィールド定義の構文エラーが出ます。
テーブルの登録数を減らすと通りますが
上限か何かに引っかかっているのでしょうか?
Sub Test()
Dim CN As Object
Set CN = CreateObject("ADODB.Connection")
CN.Open "Provider = Microsoft.ACE.OLEDB.12.0; Data Source =" & "C:\Users\Downloads\データ.accdb"
CN.Execute "CREATE TABLE TBL(管理 INT,日付 DATE,番号 INT,内容 MEMO,担当 MEMO,OrderTeam MEMO,Place MEMO,Floor MEMO,GuestNum INT,種別 MEMO,物品 MEMO,対象 MEMO,状態 MEMO,時間1 MEMO,時間2 MEMO,Note MEMO,Total MEMO);"
CN.Close
MsgBox "作成しました。"
End Sub
820デフォルトの名無しさん (アウアウウー Sabb-EhK1)
2022/04/14(木) 21:40:59.88ID:zMqJUzcEa MsgBox は、End Sub の外に出して下さい。
このスレの流れ的に。
このスレの流れ的に。
821デフォルトの名無しさん (ワッチョイ e2da-EhK1)
2022/04/14(木) 22:31:20.84ID:Ep0kCh050 フィールド名 DATE は? 予約語では?
他には、day、month、table、text、user、when、where、year、zone とかも
他には、day、month、table、text、user、when、where、year、zone とかも
822デフォルトの名無しさん (ワッチョイ e2da-EhK1)
2022/04/14(木) 22:55:38.45ID:Ep0kCh050 すまん 読み間違いだった MEMOが多いような気がするが、それも多分外してるな すまん 居ないことにしといてくれ
823デフォルトの名無しさん (ワッチョイ 4349-K8WP)
2022/04/14(木) 23:23:47.63ID:fL/YN0Wd0 予約後はNote
[]で括れ
[]で括れ
824デフォルトの名無しさん (ワッチョイ bb33-QNju)
2022/04/14(木) 23:41:44.78ID:kOhvUD5R0 解決しました。
感謝です!
感謝です!
825デフォルトの名無しさん (ワッチョイ c6da-EhK1)
2022/04/15(金) 14:24:02.27ID:TsNK8La+0 >>816
クラスになじめなかったくせに
クラスになじめなかったくせに
826デフォルトの名無しさん (ワッチョイ 7fda-NgXG)
2022/04/15(金) 15:02:32.60ID:m9CVWFGZ0 う、うるさい!
827デフォルトの名無しさん (ササクッテロ Sp8b-Ndav)
2022/04/16(土) 10:04:25.26ID:g0AA3ay0p 無理してクラス使わんでもええんやで
828デフォルトの名無しさん (ワッチョイ 9f42-TF7s)
2022/04/16(土) 10:12:12.08ID:94XVUrLP0 保健室でいいってことか
829デフォルトの名無しさん (スプッッ Sd3f-DvUi)
2022/04/16(土) 10:20:43.39ID:Xjbe7mxod 特別クラスにさえ入れてもらえないのk
830デフォルトの名無しさん (ワッチョイ 17da-UOua)
2022/04/16(土) 14:51:07.70ID:gJCOre2S0 今は特殊学級は廃止されつつあると聞いたわ
差別に繋がるからだとか
差別に繋がるからだとか
831デフォルトの名無しさん (ワッチョイ b768-fNw1)
2022/04/16(土) 14:55:23.27ID:pYTE49690 >>830
それな
・ひまわり学級導入
差別だから廃止しろ!
・ひまわり学級撤廃
障がい者と一緒に授業できるわけねーだろ!分けろ!
これを5年ぐらいの周期でず〜〜〜っと繰り返してる。少なくともここ30年はそう
それな
・ひまわり学級導入
差別だから廃止しろ!
・ひまわり学級撤廃
障がい者と一緒に授業できるわけねーだろ!分けろ!
これを5年ぐらいの周期でず〜〜〜っと繰り返してる。少なくともここ30年はそう
832デフォルトの名無しさん (アウアウウー Sa1b-+1fN)
2022/04/16(土) 15:07:04.56ID:rh08QZl8a 1年目 ひまわり学級導入
6年目 ひまわり学級撤廃
11年目 ひまわり学級導入
16年目 ひまわり学級撤廃
21年目 ひまわり学級導入
26年目 ひまわり学級撤廃
30年目、ひまわり学級は撤廃された状態
6年目 ひまわり学級撤廃
11年目 ひまわり学級導入
16年目 ひまわり学級撤廃
21年目 ひまわり学級導入
26年目 ひまわり学級撤廃
30年目、ひまわり学級は撤廃された状態
833デフォルトの名無しさん (ワッチョイ d7da-dJ8g)
2022/04/16(土) 17:39:51.13ID:aIa1oxEK0 コールバイネームしたいから無理にクラス使うというのはある。
834デフォルトの名無しさん (ワッチョイ 17da-UOua)
2022/04/16(土) 18:34:28.46ID:gJCOre2S0 自分が通っていた学校の特殊学級は8組て名称だった
6組まではノーマルで何故か7組が無くて8組が特殊だった。
6組まではノーマルで何故か7組が無くて8組が特殊だった。
835デフォルトの名無しさん (ワッチョイ 9f4f-Ndav)
2022/04/16(土) 18:39:26.14ID:vqf9SIAK0836デフォルトの名無しさん (ワッチョイ d7da-dJ8g)
2022/04/17(日) 02:09:30.35ID:BVP+DOJH0837デフォルトの名無しさん (アウアウウー Sa1b-+1fN)
2022/04/17(日) 03:28:38.26ID:N2omx0Taa たまーに出てくるオブジェクト指向の話。
もうオブジェクト指向なんて忘れたは。
もうオブジェクト指向なんて忘れたは。
838デフォルトの名無しさん (ワッチョイ 9fda-wCJf)
2022/04/17(日) 07:38:47.19ID:X2S+9pHC0 ワイのコードは素人指向
839デフォルトの名無しさん (ワッチョイ 1701-hfAD)
2022/04/17(日) 09:54:53.72ID:c23oRZKe0840デフォルトの名無しさん (ブーイモ MM8f-3xp7)
2022/04/17(日) 10:13:47.49ID:a3I3T2VGM excel vbaではオブジェクトを利用したプログラミングにはなるけど、
それだけでオブジェクト指向だとは言えないな
それだけでオブジェクト指向だとは言えないな
841デフォルトの名無しさん (スプッッ Sddf-X/6k)
2022/04/17(日) 10:56:37.84ID:acUYvJMnd 玄人志向が玄人向けだったのは最初だけ
842デフォルトの名無しさん (ワッチョイ 77da-+xkO)
2022/04/18(月) 22:09:45.73ID:dtBLR+IO0 どなたか相談に乗っていただきたいです。
現在、大学の講義で使用するため関数を作成しているのですが、最後に関数に戻り値を入れる際に「代入式の左辺の関数呼び出しは、バリアント型またはオブジェクト型の値を返さなけれななりません。」
とコンパイルエラーが出てしまいます。このエラーはどのように解決したらよいでしょうか?
現在、大学の講義で使用するため関数を作成しているのですが、最後に関数に戻り値を入れる際に「代入式の左辺の関数呼び出しは、バリアント型またはオブジェクト型の値を返さなけれななりません。」
とコンパイルエラーが出てしまいます。このエラーはどのように解決したらよいでしょうか?
843デフォルトの名無しさん (ワッチョイ b768-fNw1)
2022/04/18(月) 22:14:18.56ID:5XyRTXLN0 コード見ないとちょっときつい
844デフォルトの名無しさん (ワッチョイ 1701-u7hf)
2022/04/18(月) 22:20:21.18ID:JAMU3YD50 コード作成お願いします!
2つのcsvがあってどちらも1列目に主キーがあります。
B:15列目の対応するキーの値を
A:3列目に代入
したいです。
できますかね?
2つのcsvがあってどちらも1列目に主キーがあります。
B:15列目の対応するキーの値を
A:3列目に代入
したいです。
できますかね?
845デフォルトの名無しさん (ワッチョイ 77da-+xkO)
2022/04/18(月) 22:25:33.62ID:dtBLR+IO0 Sub TEST1()
Dim Hight As Double, Time As Double
Hight = 0.4
Time = 2#
MsgBox WaveLength(Hight, Time)
End Sub
Function WaveLength(Hight, Time) As Double
Dim G As Double, PAI As Double
Dim WL0 As Double, WL1 As Double, WL2 As Double
G = 9.80665
PAI = WorksheetFunction.Pi()
WL0 = G * Time * Time / (2# * PAI)
WL1 = WL0
Do While ((WL2 - WL1) / WL1) >= 0.001
WL2 = WL0 * Worksheet.Tanh((2) * PAI * Hight / WL1)
If ((WL2 - WL1) / WL1) < 0.001 Then Exit Do
WL1 = 0.5 * (WL1 + WL2)
Loop
WaveLength() = WL2
End Function
Dim Hight As Double, Time As Double
Hight = 0.4
Time = 2#
MsgBox WaveLength(Hight, Time)
End Sub
Function WaveLength(Hight, Time) As Double
Dim G As Double, PAI As Double
Dim WL0 As Double, WL1 As Double, WL2 As Double
G = 9.80665
PAI = WorksheetFunction.Pi()
WL0 = G * Time * Time / (2# * PAI)
WL1 = WL0
Do While ((WL2 - WL1) / WL1) >= 0.001
WL2 = WL0 * Worksheet.Tanh((2) * PAI * Hight / WL1)
If ((WL2 - WL1) / WL1) < 0.001 Then Exit Do
WL1 = 0.5 * (WL1 + WL2)
Loop
WaveLength() = WL2
End Function
846デフォルトの名無しさん (ワッチョイ 77da-+xkO)
2022/04/18(月) 22:26:31.08ID:dtBLR+IO0 >>845
こういった感じです
こういった感じです
847デフォルトの名無しさん (ワッチョイ 77da-+xkO)
2022/04/18(月) 22:27:22.86ID:dtBLR+IO0 VBA自体初めてなので何からしたらいいのかわかっていない状況です。
848デフォルトの名無しさん (ワッチョイ b768-fNw1)
2022/04/18(月) 22:30:08.42ID:5XyRTXLN0 >>845
functionの返り値使いたい時はfunction名に代入すればok。カッコは不要
Sub TEST1()
MsgBox WaveLength(Hight, Time)
End Sub
Function WaveLength(Hight, Time) As Double
WaveLength = 5
End Function
functionの返り値使いたい時はfunction名に代入すればok。カッコは不要
Sub TEST1()
MsgBox WaveLength(Hight, Time)
End Sub
Function WaveLength(Hight, Time) As Double
WaveLength = 5
End Function
849デフォルトの名無しさん (ワッチョイ 77da-+xkO)
2022/04/18(月) 22:41:26.28ID:dtBLR+IO0850デフォルトの名無しさん (ワッチョイ 1fbe-X/6k)
2022/04/18(月) 22:44:42.92ID:kMWXV8yj0851デフォルトの名無しさん (ワッチョイ 77da-+xkO)
2022/04/18(月) 22:46:49.95ID:dtBLR+IO0 >>850
小文字一文字とかでも大丈夫ですか?
小文字一文字とかでも大丈夫ですか?
852デフォルトの名無しさん (スプッッ Sd3f-DvUi)
2022/04/18(月) 22:48:03.57ID:tZvgKjwbd それが出来るのがFunctionの良いところよ
戻り値は配列とかに入れておけばok
戻り値は配列とかに入れておけばok
853デフォルトの名無しさん (ワッチョイ 1fbe-X/6k)
2022/04/18(月) 22:54:56.92ID:kMWXV8yj0854デフォルトの名無しさん (ワッチョイ b768-fNw1)
2022/04/18(月) 23:00:04.07ID:5XyRTXLN0 マナーってなんだよw
あとで自分が見て分からなくなるのが問題
赤の他人が見てもわかるような名前にしておくと、自分のためになる
あとで自分が見て分からなくなるのが問題
赤の他人が見てもわかるような名前にしておくと、自分のためになる
855デフォルトの名無しさん (ワッチョイ b768-fNw1)
2022/04/18(月) 23:00:47.59ID:5XyRTXLN0856デフォルトの名無しさん (ワッチョイ 77da-+xkO)
2022/04/18(月) 23:01:50.92ID:dtBLR+IO0 とりあえず、できました。
Sub TEST1()
Dim hight1 As Double, Time1 As Double
hight1 = 0.4
Time1 = 2#
MsgBox WaveLength(hight1, Time1)
End Sub
Function WaveLength(hight1, Time1) As Double
Dim G As Double, PAI As Double
Dim WL0 As Double, WL1 As Double, WL2 As Double
G = 9.80665
PAI = WorksheetFunction.Pi()
WL0 = G * Time1 * Time1 / (2# * PAI)
WL1 = WL0
Do While ((WL2 - WL1) / WL1) >= 0.001
WL2 = WL0 * Worksheet.Tanh((2) * PAI * hight1 / WL1)
WL1 = 0.5 * (WL1 + WL2)
Loop
WaveLength = WL2
End Function
Sub TEST1()
Dim hight1 As Double, Time1 As Double
hight1 = 0.4
Time1 = 2#
MsgBox WaveLength(hight1, Time1)
End Sub
Function WaveLength(hight1, Time1) As Double
Dim G As Double, PAI As Double
Dim WL0 As Double, WL1 As Double, WL2 As Double
G = 9.80665
PAI = WorksheetFunction.Pi()
WL0 = G * Time1 * Time1 / (2# * PAI)
WL1 = WL0
Do While ((WL2 - WL1) / WL1) >= 0.001
WL2 = WL0 * Worksheet.Tanh((2) * PAI * hight1 / WL1)
WL1 = 0.5 * (WL1 + WL2)
Loop
WaveLength = WL2
End Function
857デフォルトの名無しさん (ワッチョイ 77da-+xkO)
2022/04/18(月) 23:03:04.12ID:dtBLR+IO0 ただ、まちがっているみたいです。
858デフォルトの名無しさん (ワッチョイ 9f01-0UVf)
2022/04/18(月) 23:03:10.61ID:wKhqv1yX0 >>850
Hight なんていう関数あったっけ?
Hight なんていう関数あったっけ?
859デフォルトの名無しさん (ワッチョイ 77da-+xkO)
2022/04/18(月) 23:09:31.78ID:dtBLR+IO0 Doの中でWL2=WL0*tanh(2*PAI*H/WL1)を実行して、((WL2-WL1)/WL1)の絶対値が0.001より小さい場合には関数にWL2を代入して、0.001より大きい場合にはWL1=0.5*(WL1+WL2))と変換して再度Doを行うという繰り返しです。
860デフォルトの名無しさん (ワッチョイ 77da-+xkO)
2022/04/18(月) 23:13:08.37ID:dtBLR+IO0 すみません、わかりにくいですね。
WL1からなる計算式で求められるWL2とWL1の関係が条件に合わない場合、WL1をWL1とWL2の平均をとって再度WL2を求めたいです。
WL1からなる計算式で求められるWL2とWL1の関係が条件に合わない場合、WL1をWL1とWL2の平均をとって再度WL2を求めたいです。
861デフォルトの名無しさん (ワッチョイ 7749-qaox)
2022/04/18(月) 23:55:22.83ID:6SbGdBJw0 Do
WL2 = WL0 * Worksheet.Tanh((2) * PAI * hight1 / WL1)
If Abs((WL2 - WL1) / WL1) < 0.001 Then Exit Do
WL1 = 0.5 * (WL1 + WL2)
Loop
WL2 = WL0 * Worksheet.Tanh((2) * PAI * hight1 / WL1)
If Abs((WL2 - WL1) / WL1) < 0.001 Then Exit Do
WL1 = 0.5 * (WL1 + WL2)
Loop
862デフォルトの名無しさん (アウアウウー Sa1b-729v)
2022/04/19(火) 05:01:48.08ID:dRTEe6m5a どうでもいいが GやPAIは定数として関数の外にだす方が好き
863デフォルトの名無しさん (ワッチョイ b768-fNw1)
2022/04/19(火) 06:39:40.35ID:UDMLP6tq0864デフォルトの名無しさん (ワッチョイ 9f01-0UVf)
2022/04/19(火) 07:20:27.86ID:KrqnU+fb0865デフォルトの名無しさん (ワッチョイ b768-fNw1)
2022/04/19(火) 07:25:56.37ID:UDMLP6tq0 よく見たらhightかよクソがw
866デフォルトの名無しさん (ワッチョイ 97da-2Xjs)
2022/04/19(火) 07:48:45.10ID:muVDZfH30 >>860
ざっくり見た感じだけなので詳しく分からないけどその計算式って正しい?
その計算式の内容と判定条件だと初期値の値によっては計算が収束せずに振動を繰り返すことになるので
ループから脱出できなくなる気がする
ざっくり見た感じだけなので詳しく分からないけどその計算式って正しい?
その計算式の内容と判定条件だと初期値の値によっては計算が収束せずに振動を繰り返すことになるので
ループから脱出できなくなる気がする
867デフォルトの名無しさん (ワッチョイ bf14-4qoo)
2022/04/19(火) 12:03:50.63ID:SIyX6JLR0 Do?Loopの例文見ると条件はWhileが多い気がする
自分はUntil派なんですが
自分はUntil派なんですが
868デフォルトの名無しさん (ラクッペペ MM8f-ku93)
2022/04/19(火) 12:41:24.95ID:y80OoYXYM でっていう
869デフォルトの名無しさん (ワッチョイ ffbb-GYib)
2022/04/19(火) 12:53:32.89ID:Hbe28u0D0 Untilはコーディングミスで「なぜか抜けられない」状態が起きた時の解決がめんどくさいからあんま使いたくない
Whileならコーディングミスっても、値が範囲内でループし続けてるくらいしか原因がないから突き止めやすい
Whileならコーディングミスっても、値が範囲内でループし続けてるくらいしか原因がないから突き止めやすい
870デフォルトの名無しさん (ワッチョイ ff8e-lF56)
2022/04/19(火) 14:33:22.38ID:XaMNMP/i0 >>869
無能自慢?
無能自慢?
871デフォルトの名無しさん (ワッチョイ ffbb-GYib)
2022/04/19(火) 14:38:03.91ID:Hbe28u0D0872デフォルトの名無しさん (ワッチョイ ff8e-lF56)
2022/04/19(火) 15:06:19.06ID:XaMNMP/i0 >>871
いや、お前が無能なだけ
いや、お前が無能なだけ
873デフォルトの名無しさん (ガックシ 068f-EdYG)
2022/04/19(火) 15:24:45.82ID:Cixyrkk96 https://imgur.com/srNrR8t
一応、大学から共有されている理論式がこんな感じなのでおそらく会ってます
一応、大学から共有されている理論式がこんな感じなのでおそらく会ってます
874デフォルトの名無しさん (オッペケ Sr8b-ny4V)
2022/04/19(火) 16:03:50.77ID:NrfRvlTVr どうでもいいけど、Excelってそういう計算やったほうがいいんだっけ
小数点以下になるようなものは避けたほうがいいって記憶がある
小数点以下になるようなものは避けたほうがいいって記憶がある
875デフォルトの名無しさん (ワッチョイ ffbb-GYib)
2022/04/19(火) 16:13:18.16ID:Hbe28u0D0 小数点以下の計算は誤った結果が出ることも結構あるから、
・型はCurrencyにして小数点以下5桁までにする
・可能であれば整数に直してから計算させる
くらいはしておいた方がいいね
・型はCurrencyにして小数点以下5桁までにする
・可能であれば整数に直してから計算させる
くらいはしておいた方がいいね
876デフォルトの名無しさん (ガックシ 068f-EdYG)
2022/04/19(火) 16:39:16.39ID:Cixyrkk96 Function WaveLength(Height1, Time1) As Double
Dim G As Double, PAI As Double
Dim WL0 As Currency, WL1 As Currency, WL2 As Currency
G = 9.80665
PAI = WorksheetFunction.Pi()
WL0 = G * Time1 * Time1 / (2# * PAI)
WL1 = WL0
WL2 = WL0 * WorksheetFunction.Tanh(2 * PAI * Height / WL1)
Do
WL2 = WL0 * WorksheetFunction.Tanh(2 * PAI * Height / WL1)
If Abs((WL2 - WL1) / WL1) < 0.001 Then Exit Do
WL1 = 0.5 * (WL1 + WL2)
Loop
WaveLength = WL2
End Function
とりあえずこういった感じで修正したものの実行するとオーバーフローするみたいです。
何が原因でしょうか?
Dim G As Double, PAI As Double
Dim WL0 As Currency, WL1 As Currency, WL2 As Currency
G = 9.80665
PAI = WorksheetFunction.Pi()
WL0 = G * Time1 * Time1 / (2# * PAI)
WL1 = WL0
WL2 = WL0 * WorksheetFunction.Tanh(2 * PAI * Height / WL1)
Do
WL2 = WL0 * WorksheetFunction.Tanh(2 * PAI * Height / WL1)
If Abs((WL2 - WL1) / WL1) < 0.001 Then Exit Do
WL1 = 0.5 * (WL1 + WL2)
Loop
WaveLength = WL2
End Function
とりあえずこういった感じで修正したものの実行するとオーバーフローするみたいです。
何が原因でしょうか?
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 「もうキモくてキモくて…」29歳女性が語る“おぢアタック”の実態。「俺ならイケるかも」年下女性を狙う勘違い中年男性に共通点が★4 [Hitzeschleier★]
- ミス・ユニバース フィンランド代表の「つり目」写真が波紋… 本人釈明も批判やまず 協会謝罪「徹底的に検証」へ [冬月記者★]
- 【おこめ券】鈴木憲和農相 小泉前農相の備蓄米放出を“反省”「備蓄の円滑な運営を図ってまいります」 [Hitzeschleier★]
- 自民・麻生太郎副総裁 石破政権の1年は「どよーん」 高市政権発足で「何となく明るくなった」「世の中のことが決まり動いている」★2 [Hitzeschleier★]
- 1人3千円の食品高騰対策、何に使える? あいまいなまま衆院通過 [蚤の市★]
- ゆたぼん 二重手術を報告「めちゃくちゃ気に入っています」 [muffin★]
- バトル漫画ってなんだかんだ言って修行編が一番面白いよな
- トランプ、G7に代わるcore 5を発表 [805596214]
- 皇室に娘を嫁がせて外戚として権勢を振るいたい。皇室の権威を傘に着て悪逆の限りを尽くすのだ。可能か?
- 【悲報】新米、全く売れなくて倉庫が満杯になってしまうwwwwwwwwwwwwwwwwwwww [802034645]
- 【悲報】日本共産党、ツイッター速報にブチギレ法的措置WWWWWWWWWWWWWWWWWWWWWWWWWWWW [935793931]
- 木曜日のんなっしょい❗(・o・🍬)仕放題スレ🏡
