1 名前:1000 [2020/05/10(日) 13:43:45 ID:Nkoph0aj.net] ExcelのVBAに関する質問スレです コード書き込みや作成依頼もOK ※前スレ Excel VBA 質問スレ Part65 https://mevius.5ch.net/test/read.cgi/tech/1584430040/ ※デフォルト設定
422 名前:デフォルトの名無しさん mailto:sage [2020/05/31(日) 02:50:46.87 ID:6kaO8G32.net] >>399 理解できるように勉強してるので教えてください 図々しいと思いますが
423 名前:デフォルトの名無しさん mailto:sage [2020/05/31(日) 02:51:03.70 ID:6kaO8G32.net] >>402 調べてみます!
424 名前:デフォルトの名無しさん mailto:sage [2020/05/31(日) 02:52:54 ID:wkpADETk.net] >>401 じゃあ転職しろよw
425 名前:デフォルトの名無しさん [2020/05/31(日) 02:56:41.46 ID:2V+gQfrN.net] >>403 この段階でわからないこと自体無理なんだよ 仕組みを理解しなければ無理 公式だけ暗記して終わりの馬鹿には無理なんだよ
426 名前:デフォルトの名無しさん mailto:sage [2020/05/31(日) 03:25:44.77 ID:C8J9R7KI.net] >>375 ありがとう でもだめだったわ
427 名前:デフォルトの名無しさん mailto:sage [2020/05/31(日) 03:27:49.96 ID:C8J9R7KI.net] >>403 VBA 引数 でぐぐる
428 名前:蟻人間 ◆T6xkBnTXz7B0 mailto:sage [2020/05/31(日) 04:00:28 ID:KExNe49d.net] エクセルにはリファレンスマニュアルが付属していて、追加でインストールするとF1ヘルプで言語仕様まで見られる。 マニュアルがパソコンに入ってなかったら、管理者からエクセルのシーディーを借りてね。
429 名前:デフォルトの名無しさん mailto:sage [2020/05/31(日) 05:00:56.16 ID:pJwiV8F0.net] >>398 sub() って文法的に作れないはず マクロが動かないのは文字列のせいじゃないかもよ
430 名前:デフォルトの名無しさん mailto:sage [2020/05/31(日) 08:40:31 ID:6kaO8G32.net] ごめんなさい sub test ()でした
431 名前:デフォルトの名無しさん mailto:sage [2020/05/31(日) 08:57:53.05 ID:C8J9R7KI.net] Sub Test0001() Dim i As Integer For i = 1 To 2 Dim ary() MsgBox "ここにブレークポイント設定" ary = Sheet1.Range(Cells(1, i), Cells(5, i)) Next i End Sub A列とB列にあるいずれも5行目までの値を配列に取得するだけのプログラム For中の一回転目はA列、2回転目はB列 こうやってForの中でaryを宣言し直せば、aryは初期化されると思い込んでたんだけどダメなのな 2回目にMsgBoxで止まったときにaryみるとA列のデータがaryに残ってしまってる これってメモリ上に残ってて同じ所を参照し直すからなのかな Eraseすれば消えるからいいんだけど、気づくのに時間かかったわ こんな初歩的なこと分かってないでよく今まで組んできた
432 名前:もんだ [] [ここ壊れてます]
433 名前:デフォルトの名無しさん mailto:sage [2020/05/31(日) 09:44:52 ID:8XtoheO9.net] すんません今時ブロックスコープない方がアレなんで
434 名前:デフォルトの名無しさん mailto:sage [2020/05/31(日) 09:49:53 ID:4iioSPSZ.net] >>398 それはLEFT()が動かないのと同じ理屈。 普通LEFT(A1,5)とか書くから。
435 名前:デフォルトの名無しさん mailto:sage [2020/05/31(日) 10:44:01.62 ID:GCI/GpSg.net] >>412 そういう動作を知るためのテストなんじゃね 残っていても上書きされるんだから問題ないし
436 名前:デフォルトの名無しさん mailto:sage [2020/05/31(日) 10:47:02.74 ID:GCI/GpSg.net] >>411 sub test("文字列") ってことか?
437 名前:デフォルトの名無しさん mailto:sage [2020/05/31(日) 11:53:35 ID:df9CBrpd.net] >>398 呼び出し元とプロシージャそれぞれ一行ずつ書いてくれよ
438 名前:デフォルトの名無しさん mailto:sage [2020/05/31(日) 12:34:25 ID:GcFwCYXw.net] >>412 VBAのDimは書いた場所に関係なく、コード開始時に1回だけ実行される仕様 モジュールの最後に書いても結果は変わらない Sub Test() Dim a() For i = 0 To 9 Dim b() Next Dim c() End Sub
439 名前:デフォルトの名無しさん mailto:sage [2020/05/31(日) 12:42:20 ID:C8J9R7KI.net] >>413 あーなるほど そこを考えるんですか、勉強になりましたわ ただ、改めて疑問に思ったのは、同じブロックスコープ内で再度宣言してもエラーでないのはどういうことなんだろーとか Forの中での宣言だと繰り返しといっても宣言部分は無視されるってことかな ま、同じ事しないようにちゃんとおぼえておこ・・・ >>415 このプログラムだとそうなんだけど ary = Sheet1.Range(Cells(1, i), Cells(5, i)) この部分が、ある条件を満たした場合のみ代入するっていうコードだとします んで、条件満たさなかった場合には代入されないため、A列のデータがaryに残っちゃっておかしな事になっちゃってたわけですよ 自分で実際に組んでるコードはも少し複雑なものなので
440 名前:デフォルトの名無しさん mailto:sage [2020/05/31(日) 12:44:02 ID:C8J9R7KI.net] >>418 ありがとうございます 全然知らなかったです ちょい調べてみます
441 名前:デフォルトの名無しさん mailto:sage [2020/05/31(日) 13:55:17.54 ID:W/GxV3g0.net] >>401 お前は周りにない知識が多少あることに優越感持ってるだけで仕事できる人間の言い分に見えんのよなぁ
442 名前:デフォルトの名無しさん mailto:sage [2020/05/31(日) 14:13:51 ID:GcFwCYXw.net] 仕事ができる人なら、コードを書くのに何人時かかりますっていう見積もりをざっくりでいいから依頼主にちゃんと提示する それで依頼を取り下げるかどうかはクライアントの決めること 想定外のトラブルで納期が遅れそうならホウ・レン・ソウして迷惑をかけないようにする 難しいからって愚痴るのはまったく建設的じゃないし、なんの解決にもならない
443 名前:デフォルトの名無しさん mailto:sage [2020/05/31(日) 15:00:37 ID:py7qoVDy.net] なんでそんなにかかるの? どこに時間かかる要素があるの? やればいいだけでしょ? ○○さんはもっと早かったよ? 次の仕事があるんならそれでいいよ?
444 名前:デフォルトの名無しさん mailto:sage [2020/05/31(日) 15:05:53 ID:ztYbO9r8.net] 報連相つらいよね…プログラムの難しさよりも報連相の方がつらい…
445 名前:デフォルトの名無しさん [2020/05/31(日) 16:55:11 ID:uJxLAScO.net] すみませんド素人ですがご教授下さい。 「あるセルを選択して実行すると選択したセル行のA〜D列以外が全て1.1倍される」 というマクロを組みたいです。 ネットで調べて少し作ろうとしてみましたが 知識がありません。 Sub 倍掛け() Dim SELU As Range '変数名の絶望的センス名 For Each SELU In Selection SELU.Value = SELU.Value * 1.1 Next SELU End Sub Sub 選択したセルの行全選択() ActiveCell.EntireRow.Select End Sub この2つのプロシージャが何となく使えるのかすらわからないのですが試行錯誤しています。 A〜D列を除外というやり方もわかりません。 すみませんが
446 名前:教えていただけないでしょうか。 [] [ここ壊れてます]
447 名前:蟻人間 ◆T6xkBnTXz7B0 mailto:sage [2020/05/31(日) 17:39:48 ID:w6MuXuh+.net] >>425 Excel for Windows 95で動作確認。 Sub Record1() Application.Worksheets(1).Select For I = 5 To 20 For J = 1 To 20 Cells(J, I).Select ActiveCell.FormulaR1C1 = Val(ActiveCell.FormulaR1C1) * 1.1 Next J Next End Sub
448 名前:蟻人間 ◆T6xkBnTXz7B0 mailto:sage [2020/05/31(日) 17:50:31 ID:w6MuXuh+.net] >>426 「To 20」のところは適当に変更してね。
449 名前:デフォルトの名無しさん mailto:sage [2020/05/31(日) 18:34:56.03 ID:Gn3uBA4V.net] >>425 選択した範囲が処理の起点なので、、 Dim r As Range For Each r In Selection If r.colunm < 5 Then GoTo nextLoop If r.Value = "" Then GoTo nextLoop r.Value = r.Value * 1.1 nextLoop: Next こんな感じ? 行全体を対象にしたいみたいだけど、その時はFor文の前に Selection.EntireRow.Select を差し込めばいい。 1万列処理されるけど、、、
450 名前:デフォルトの名無しさん mailto:sage [2020/05/31(日) 18:39:34 ID:Gn3uBA4V.net] >>428 綴りを間違っとった If r.Column < 5 Then GoTo nextLoop 文字列セルを避けたければ、、以下も追加 If Not IsNumeric(r.Value) Then GoTo nextLoop
451 名前:デフォルトの名無しさん mailto:sage [2020/05/31(日) 19:13:07.80 ID:4iioSPSZ.net] >>424 ああつらい。 上司がメール読まないタイプだと特に。
452 名前:デフォルトの名無しさん [2020/05/31(日) 21:17:59.30 ID:yITbq02Q.net] 馬鹿に馬鹿が答えて滅茶苦茶 簡単な質問だとしゃしゃり出てくるからおかしくなる
453 名前:デフォルトの名無しさん mailto:sage [2020/05/31(日) 22:48:28.20 ID:6kaO8G32.net] >>416 そうです!! カッコ内に文字列です!
454 名前:デフォルトの名無しさん mailto:sage [2020/05/31(日) 22:49:04.73 ID:6kaO8G32.net] >>417 呼び出し元…すみません、知識不足でした…
455 名前:デフォルトの名無しさん [2020/05/31(日) 23:06:33.42 ID:2V+gQfrN.net] >>433 馬鹿には無理だと悟れよ、馬鹿
456 名前:デフォルトの名無しさん mailto:sage [2020/06/01(月) 18:21:12.15 ID:JWhdLJJl.net] お前もだ
457 名前:デフォルトの名無しさん [2020/06/01(月) 18:38:31 ID:4Uk/Vywe.net] 異動した先輩が作ったマクロに少し追加しようと思って標準モジュール見てみたら 乱れ雪月花 地ずり残月 かすみ二段 パリィ 何これ???と思ったらゲームの技名なのか 見事なプロシージャだけど関連性が全くわからんかった…
458 名前:デフォルトの名無しさん mailto:sage [2020/06/01(月) 18:48:48 ID:jizMt7mj.net] Sub 乱れ雪月花 風雪即意付け 月影の太刀 三花仙 End Sub
459 名前:デフォルトの名無しさん mailto:sage [2020/06/01(月) 19:40:30 ID:o1fpUPSE.net] 取り敢えずマジックナンバーだらけのを保守しろとかいうのはやめてー セル参照も起点ぐらいは定数宣言しといて欲しい
460 名前:デフォルトの名無しさん mailto:sage [2020/06/01(月) 19:48:00 ID:xzpno8fJ.net] 1列目の2行目から下にEXCELファイル名があります。(同一ファイル名あり) それらを全て開く、処理、閉じるを繰り返すと時間がかかるので、同一ファイル名は一度だけ開いて閉じるをやりたいのですがどしたらいいですか? 1列目をソート Do until 1列目 ??? 処理 loop ファイル名は数字(000001.xlsなどで桁数は同じ) ???の所で開くor閉じるをやりたいのですがどうしたらいいですか?
461 名前:デフォルトの名無しさん mailto:sage [2020/06/01(月) 20:00:55.95 ID:Ct20WAoS.net] パリィは草
462 名前:デフォルトの名無しさん mailto:sage [2020/06/01(月) 20:10:21 ID:MDu2hpC8.net] >>439 ひとつ上のセルが同じファイル名なら なにもせず次へ
463 名前:デフォルトの名無しさん mailto:sage [2020/06/01(月) 20:42:10 ID:eRBcTATy.net] 重複禁止の処理は連想配列(VBAだとDictionaryオブジェクト)を使うと便利だよ。 既に連想配列に存在するなら何もしない、存在しないなら処理して連想配列に登録する。 Valueに結果を入れておいて、実行結果をシートに出力とかするとカッコイイよ。
464 名前:デフォルトの名無しさん mailto:sage [2020/06/01(月) 21:05:54 ID:Otvtnefa.net] 結果をシートに出すなら配列使わんと重複削除して
465 名前:ゥら開いた方が速くて楽じゃん [] [ここ壊れてます]
466 名前:デフォルトの名無しさん [2020/06/01(月) 23:34:24 ID:5NIHbXOS.net] まだ22歳の学生社長が得た、23億円の「使い道」 あの橋本環奈をCMに使うバイトアプリの雄 https://toyokeizai.net/articles/-/319511 中学時代の車いす生活から、17歳で起業するまで https://www.advertimes.com/20200130/article306925/ ミャンマー発 AIダイニングアプリ「Yathar」をしかける日本人起業家 https://roboteer-tokyo.com/archives/14840 自分の視野は「世の中の0.001%」と自覚せよ。ビジネスチャンスを掴む4つの習慣 https://headlines.yahoo.co.jp/hl?a=20200511-00010001-srnijugo-life アプリの視聴率がわかる 高専卒起業家の独創力 https://www.nikkei.com/article/DGXMZO46695580Y9A620C1000000/ 1万人の若者を支援!インターンが日本を変えるかも!? glowshipの若き創業者・足立卓也氏インタビュー https://sogyotecho.jp/glowship-adachi-interview/ 大学生起業家が設立1年で20億円調達! 単発バイトアプリに外食企業など出資【タイミー】 https://foodfun.jp/archives/3490
467 名前:デフォルトの名無しさん mailto:sage [2020/06/02(火) 00:29:20 ID:hEtyTtKQ.net] 俺ならこうかな。 Sub サンペイグッドカメラ() どっきりカメラのキシフォート カメラのドイ End Sub
468 名前:デフォルトの名無しさん mailto:sage [2020/06/02(火) 00:35:26 ID:0adtr6kX.net] VBAだしそういう名前面白いかもなw 簡単だけど保守したくないやつは、もう先輩や同僚の連絡先を名前にしようかな
469 名前:デフォルトの名無しさん [2020/06/02(火) 01:36:20.19 ID:rfJHDu9M.net] Sub 馬鹿専用() 馬鹿には無理() 馬鹿は帰れ() End Sub
470 名前:デフォルトの名無しさん mailto:sage [2020/06/02(火) 02:01:31.67 ID:cr7Q5ahz.net] Sub 鱸() 鰯() 鰹() 鮪() End Sub
471 名前:デフォルトの名無しさん mailto:sage [2020/06/02(火) 02:07:31.79 ID:SOkkDiQ6.net] >>439 Ruby なら重複要素を許さない、集合を使って、 require 'set' filenames = <<"EOT" a/foo.txt a/bar.txt a/foo.txt EOT set = Set.new filenames.each_line do |filename| # 1行ずつ処理する filename.chomp! # 末尾の改行を削除する # 同じ要素は追加できないので、追加できた時だけ、そのファイルを読み込む p File.read( filename ) if set.add?( filename ) end
472 名前:デフォルトの名無しさん mailto:sage [2020/06/02(火) 02:24:02 ID:cr7Q5ahz.net] >>439 [データ]→[重複の削除] って機能あるけど
473 名前:デフォルトの名無しさん mailto:sage [2020/06/02(火) 04:12:46 ID:xDFjMRpH.net] >>439 ファイル名がリストアップされてる列があるなら そこでまず回して重複排除したファイル名の配列 as Stringをつくればいいだけじゃ てかその程度も思い浮かばないとなるとプログラミング向いてないような気がするわ 重複排除のプログラムって基礎の基礎でやるよ 便利な機能を使う前に順次・分岐・繰り返しでほぼほぼなんでも出来ちゃうことを学んだ方がいいわ C言語の勉強するとそういうの鍛えられる感じする
474 名前:デフォルトの名無しさん mailto:sage [2020/06/02(火) 08:37:46 ID:ZejDuh3H.net] >>364 Readme読む限り、ちょっとこれはと思う。 一定間隔はあまり良くないな。 出来ればWM_DRAWCLIPBOARD捕まえるのが常套手段。
475 名前:デフォルトの名無しさん mailto:sage [2020/06/02(火) 08:39:17 ID:ZejDuh3H.net] >>386 まあ、プログラマ―としては糞コードの見本を強要されるわけだからねえ。
476 名前:デフォルトの名無しさん mailto:sage [2020/06/02(火) 08:41:06 ID:ZejDuh3H.net] >>398 引数という言葉を調べてみよう。
477 名前:デフォルトの名無しさん mailto:sage [2020/06/02(火) 09:53:39.10 ID:DG4jD+ms.net] い・・引数
478 名前:デフォルトの名無しさん mailto:sage [2020/06/02(火) 10:17:05 ID:ZKdkos41.net] いんすう、なの? 勝手に、ひきすう、って読んでた。
479 名前:デフォルトの名無しさん mailto:sage [2020/06/02(火) 10:38:01.33 ID:HxakEXb6.net] いんすうだと因数と間違えるから、わざとひきすうと読む慣習
480 名前:デフォルトの名無しさん [2020/06/02(火) 11:01:38 ID:P+GfDheU.net] ソヒキスウブンカイとかあったよねー。
481 名前:デフォルトの名無しさん mailto:sage [2020/06/02(火) 11:28:56 ID:Bxw1Fg+T.net] 淫吸だとエロい言葉に聞こえるからひきすうと読む
482 名前:デフォルトの名無しさん [2020/06/02(火) 12:59:58 ID:86yzZ856.net] Sub セル2行を結合して出力() Sheets("雛型").Select ActiveSheet.Copy Dim gg As Long, rr As Long For gg = Cells(Rows.Count, "E").End(xlUp).Row To 11 Step -1 Rows(gg + 1).Insert For rr = 5 To 31 Cells(gg, rr).Resize(2).Merge Next rr Next gg HorizontalAlignment = xlCenter VerticalAlignment = xlCenter Range("A1") = "2行を結合して出力" End Sub すみません、ネットで調べまくってる相変わらずのど初心者です。 セルの行挿入と結合を範囲指定して 2行を結合するのは何とか調べてできたのですが、 「セルの列挿入と結合を繰り返して 2列1行のセルにしたい」 というのができず。。ご教示頂けませんか。 理想は 「セルを2列挿入と結合をして3列1行のセルにする」や 「2列と2行の挿入と結合繰り返して2列2行のセルにする」 など、色々パターンを作りたいのですが。 ネットと入門編の本だとやはり限界を感じます。。 どなかた何卒お願いします。
483 名前:デフォルトの名無しさん mailto:sage [2020/06/02(火) 13:09:54.31 ID:YHzZdfxN.net] .resize(1,2).mergeとか Range(rows(gg+1)rows(gg+2)).insertとか
484 名前:デフォルトの名無しさん mailto:sage [2020/06/02(火) 14:39:08.29 ID:cr7Q5ahz.net] セルの結合をマクロでやる設計者ってセンスないね
485 名前:デフォルトの名無しさん mailto:sage [2020/06/02(火) 14:42:20 ID:cr7Q5ahz.net] マクロとVBAな
486 名前:デフォルトの名無しさん mailto:sage [2020/06/02(火) 16:30:35 ID:wladzkcs.net] セル結合はなあ
487 名前:デフォルトの名無しさん mailto:sage [2020/06/02(火) 17:14:02 ID:3pwUYc8f.net] vlookupとセル結合をディスってはじめてexcel使い方として一人前
488 名前:デフォルトの名無しさん mailto:sage [2020/06/02(火) 17:30:35.84 ID:ZKdkos41.net] セル結合は帳票イメージでの最終手段。
489 名前:デフォルトの名無しさん [2020/06/02(火) 17:36:37.19 ID:86yzZ856.net] セルの結合をする理由は 取引先の提出フォームが客先ごとに 1セルの結合の構成が本当に様々で8種類くらいパターンがあり 元のマクロで出した値の貼り付けが出来ないのが現状です。 なので元のマクロの1行1列のセルの値を セルの構成を客先のに合わせたシートに出力 そのシートから客先提出フォームに値の貼りつけ というのをやろうとしています。
490 名前:デフォルトの名無しさん [2020/06/02(火) 17:42:54.46 ID:86yzZ856.net] >>461 すみません、どこにどう弄ったらいいか 教えて頂きたいです。 すみません、、
491 名前:デフォルトの名無しさん [2020/06/02(火) 17:45:43.97 ID:lB7mMLW8.net] >>468 自分で考えろ
492 名前:デフォルトの名無しさん mailto:sage [2020/06/02(火) 18:33:10 ID:0adtr6kX.net] じゃあ8種類のテンプレでよくね
493 名前:デフォルトの名無しさん mailto:sage [2020/06/02(火) 18:40:35 ID:bGVvB1yX.net] 結合したりvlookupとかしたいから、わざわざエクセル使ってるんじゃないの?
494 名前:デフォルトの名無しさん mailto:sage [2020/06/02(火) 18:55:17 ID:R+Y1d9Tj.net] セル結合された部分は別の結合とかできないから その都度結合解除するとか 行の挿入や削除で表が壊れたり 見えなくなるプロパティがあったり 嫌な思い出しかない
495 名前:デフォルトの名無しさん mailto:sage [2020/06/02(火) 19:17:40.08 ID:xDFjMRpH.net] Application.OnKey ってプロシージャに引数渡せないのが残念だなぁ これってキーごとにプロシージャ作らないといけないかね
496 名前:デフォルトの名無しさん mailto:sage [2020/06/02(火) 19:20:48.48 ID:ZejDuh3H.net] >>462 そんなこたぁねえだろ。 確かに問題多いけど、分かった上で使うことあるぜ。 ゴミのSendkeys使うよりはあるね。
497 名前:デフォルトの名無しさん [2020/06/02(火) 19:31:05.26 ID:0+iVbcJA.net] Sub 列挿入() ActiveSheet.Copy Dim i As Long For i = 32 To 8 Step -1 Columns(i).Insert Next End Sub ここまでは何とか、、ってとこです。 後は指定したの行を全部何とか 2列1行のセルに 道のりが遠すぎる…
498 名前:デフォルトの名無しさん [2020/06/02(火) 19:38:40.44 ID:xX39KyXM.net] データモデルに入れたデータからSQLを使ってシートに出力する方法を教えてください。 ネットになかなか情報がなくて ListObjects.Add(SourceType:=4, Source:=ActiveWorkbook.Connections("クエリ - パワークエリ名"), Destination:=Range("$A$1")).TableObject から .WorkbookConnection.OLEDBConnection.CommandText = "テーブル名" にするとテーブルを出力 .CommandText = Array("EVALUATE CALCULATETABLE('テーブル名' , 'テーブル名'[項目名] =""検索語"" ) ") .CommandType = xlCmdDAX のようにするとDAX式で加工したテーブルを出力できるようになりましたが、SQLを使用する方法がわかりません。
499 名前:デフォルトの名無しさん mailto:sage [2020/06/03(水) 03:13:14.17 ID:4xNyRocT.net] >>475 Sub 列挿入() ActiveSheet.Copy Dim i As Long, c As Long, r As Long 'カウント用 Const n As Long = 2 '列挿入, 列マージ数 Const sC As Long = 8, eC As Long = 32 '開始列, 終了列 Const sR As Long = 2, eR As Long = 10 '開始行, 終了行 With Excel.Application .DisplayAlerts = False .ScreenUpdating = False End With For c = eC To sC Step -1 For i = 1 To n - 1 Columns(c).Insert Next i Next c For c = eC * n To sC Step -n For r = sR To eR Cells(r, c).Resize(1, n).Merge Next r Next With Excel.Application .DisplayAlerts = True End With End Sub
500 名前:デフォルトの名無しさん mailto:sage [2020/06/03(水) 03:29:44 ID:4xNyRocT.net] あっ行別の列マージならRange.Merge Across:=Trueってのがあるのか初めて知ったわ
501 名前:デフォルトの名無しさん [2020/06/03(水) 17:16:57.27 ID:AwTWg+pQ.net] すいません。関数を使って集計する方法を教えていただけないでしょうか。 index matchの組み合わせもしくは、sumifもしくはindex match sumifの複合で表示させたいです。 画像の出荷と書かれたセルに関数を入れて集計したいです。 集計は参照シートの黄色で書かれた「販売+その他出荷」の合計を表示したいです。 sumifでは縦の計算になってしまい、横の足し算が出来ない印象です。 上の数字はmatchを使った際の引用条件になると思い入れました。 説明わかりづらくてすいません。関数を教えていただけないでしょうか。 具体例のエクセルは簡単に書いてますが、実際に書くエクセルはデータが膨大なものです。 なぜかindexもうまく引用できていませんでした。 https://d.kuku.lu/ca513f39a8
502 名前:デフォルトの名無しさん [2020/06/03(水) 17:19:07.42 ID:bl/wSmIk.net] >>479 死ねよ、ここは何のスレかわかっているか?
503 名前:デフォルトの名無しさん [2020/06/03(水) 17:31:05 ID:AwTWg+pQ.net] すれ違いでしたか。。 別のスレで質問してみます 失礼します
504 名前:デフォルトの名無しさん mailto:sage [2020/06/03(水) 18:58:22.75 ID:ajKAwYcj.net] >>481 説明が下手な質問には答えられない
505 名前:デフォルトの名無しさん mailto:sage [2020/06/03(水) 19:02:55.47 ID:4xNyRocT.net] >>479 Offsetっていうセルのサイズを変える関数があるが この集計を関数でやるのは根本的にムリだね 1,10行目の数字とかに何の関連性もないから列が特定できない 元データ正規化すんのが先だよ
506 名前:デフォルトの名無しさん [2020/06/03(水) 21:04:01 ID:Wz
] [ここ壊れてます]
507 名前:EARBto.net mailto: 前にも少し聞いたけど上級者はVBAどうやって作ってくもん? そこそこボリュームのあるマクロを素人ながら作ってるんだけど ・標準モジュールにオブジェクト名付けて そこに同じ名前のプロシージャを1つ作る ユーザーフォームのボタンに プロージャ名を2つや3つ並べたり とにかくボタンに割り当ててく コードの表示見ると凄いシンプルに見えるけど 標準モジュールが30個とかあるんだが… 自己流だと全然だめねこれ [] [ここ壊れてます]
508 名前:デフォルトの名無しさん mailto:sage [2020/06/03(水) 21:12:23 ID:eXcAe8GC.net] そういうのは言語関係ない 上級者のコード読むなりプログラミング技法の初歩とかを勉強せえ
509 名前:デフォルトの名無しさん mailto:sage [2020/06/03(水) 21:16:06 ID:jxQ4kFWw.net] 上級者じゃないんでわからんが 数こなしていくうちに上達するんじゃね
510 名前:デフォルトの名無しさん [2020/06/03(水) 22:45:33 ID:DFbqrKTL.net] ネットで勉強してる初心者以前のレベルだけど 変数をiで宣言してるサイトが結構多いけど テンプレ的な変数名なの?何かの略字?
511 名前:蟻人間 ◆T6xkBnTXz7B0 mailto:sage [2020/06/03(水) 22:54:44 ID:fRs9+Xkd.net] integer
512 名前:デフォルトの名無しさん mailto:sage [2020/06/03(水) 22:55:14 ID:1Bet+/qH.net] >>487 もともとはIntegerの頭文字から とりあえず整数型変数にはI、もっと必要な時はJ、K以下略を使うというルールを70年ぐらい前にIBMの技術者が決めて、それが今まで慣習として残っている
513 名前:デフォルトの名無しさん mailto:sage [2020/06/03(水) 22:58:16 ID:k+INKoSh.net] テーブル(ListObject)の指定列に計算結果値をLoopで書き込む処理を作ったんだけど、 ひどく遅延します。事象の原因と対策わかる方いたら教えてください。 ・(同一シートの)テーブルの枠外だと同じ行数でも瞬時に終わります。 ・計算結果じゃなくて 1 を埋め込むのでも遅い。 ・再計算Off ・ためしにEnableEvents = false もやってみたけど効果なし。 3000行くらいなんですが、しばらく帰ってこない感じ。 結局式埋込に変えたんだけど、その場合だと5〜6秒くらい。 テーブルなんてそんなもん、ということであればそう認識します。 詳しい方教えてください。
514 名前:デフォルトの名無しさん mailto:sage [2020/06/03(水) 22:59:26 ID:uWfzdzS4.net] >>484 モジュールが増えるのは、 他に流用するからとか、 スクロールが面倒だからとか、 そんな理由だと思うけど。 宣言は一番上派、使用する直前派。 参照設定派、CreateObject(xxx)派、 If a = True Then派、If a Then派、 色々だから気にすんなと。
515 名前:デフォルトの名無しさん mailto:sage [2020/06/03(水) 23:02:38.52 ID:k+INKoSh.net] >>489 iteratorが語源かと思った。
516 名前:デフォルトの名無しさん mailto:sage [2020/06/03(水) 23:03:56.76 ID:LXJ+6sS7.net] DEFINT A-Z
517 名前:デフォルトの名無しさん mailto:sage [2020/06/03(水) 23:35:44.50 ID:6MdsocRT.net] ループ変数にはiもよく使うけど、rとかcも割と使う。 列と行を入れ子にしてループ処理する時は、こちらの方が分かりやすい。
518 名前:デフォルトの名無しさん mailto:sage [2020/06/03(水) 23:40:14.49 ID:K30dfupm.net] >>487 古くは Fortran かな I, J で始まる変数は無条件で整数型だった Iがアルファベットの10番目だからという よくわからない説もある
519 名前:デフォルトの名無しさん mailto:sage [2020/06/04(Thu) 00:05:55 ID:k3k6AIFZ.net] 実際の慣例ではどうなのか知らないが、i〜tまでを使うって教えられた intのtまでってことで まあ大抵使ってもi,j,kぐらいだと思うが
520 名前:デフォルトの名無しさん mailto:sage [2020/06/04(Thu) 00:09:42 ID:L9xk6UQ0.net] 視認性が悪いから、j とか l とか使いたくない。 なので、 i, k, n, とか適当に飛ばして使ってる。
521 名前:デフォルトの名無しさん mailto:sage [2020/06/04(Thu) 00:09:53 ID:OnK1RXVm.net] 自分は最大nまで使うよ。 i、j、k、
522 名前:l、m、n [] [ここ壊れてます]