1 名前:デフォルトの名無しさん mailto:sage [2021/07/18(日) 08:42:15.37 ID:KskL7bEXd.net] !extend:checked:vvvvv:1000:512 ↑同じ内容を2行貼り付けるナリ ExcelのVBAに関する質問スレナリ コード書き込みや作成依頼もOKナリ ※前スレ Excel VBA 質問スレ Part70 https://mevius.5ch.net/test/read.cgi/tech/1616072923/ Excel VBA 質問スレ Part71 https://mevius.5ch.net/test/read.cgi/tech/1621914481/ VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
644 名前:デフォルトの名無しさん mailto:sage [2021/08/25(水) 14:41:15.54 ID:j973WKJq0.net] ユーザーフォームのコンボボックスでドロップボタンをおすと実行され、リストができるのですが、項目を選択しても反映されず空欄になってしまいます。 反映されるにはどうしたらいいでしょうか Private Sub ComboBox3_DropButtonClick() Dim LastDay As Long, MyYear As Long, MyMonth As Long, r As Long With UserForm1 .ComboBox3.Clear MyYear = Val(Replace(ComboBox1.Value, "年", "")) MyMonth = Val(Replace(ComboBox2.Value, "月", "")) '来月1日の1日前から今月の対象月の終了日を算出する LastDay = Day(DateSerial(MyYear, MyMonth + 1, 0)) 'リストボックス3に今日の日付リストを入れる For r = 1 To LastDay .ComboBox3.AddItem r & "日" Next r End With End Sub
645 名前:デフォルトの名無しさん [2021/08/25(水) 14:45:50.68 ID:vgh3MVy/M.net] しらんけど 月の変更時にやるもんじゃね?
646 名前:デフォルトの名無しさん mailto:sage [2021/08/25(水) 15:11:25.13 ID:9wT7W/qy0.net] 知らんけど変数の頭によくMyとかmyとか付ける人いるけど私の年とか私の月なの?
647 名前:デフォルトの名無しさん mailto:sage [2021/08/25(水) 15:32:21.08 ID:KYWpPte7M.net] mousedown でやるとか?
648 名前:デフォルトの名無しさん mailto:sage [2021/08/25(水) 15:50:44.79 ID:ZSU75DCm0.net] ComboBox3のイベントでやることじゃないんじゃね
649 名前:デフォルトの名無しさん mailto:sage [2021/08/25(水) 17:16:17.54 ID:92U/3Tama.net] DropButtonClickが発火していない可能性をまず見る Combobox1とCombobox2の頭に「.」が付いていないことが原因か調べる 来月1日の1日前から今月の対象月の終了日…の日本語がよくわからんが、仮にMyMonthが12ならどうなるの?というのは気になる そもそもDay関数で0日を指定しているんだから、どうやってもLastDayって0になるんでは? 最後のが原因かとは思うが、とりあえず気になったところを
650 名前:デフォルトの名無しさん mailto:sage [2021/08/25(水) 17:19:41.69 ID:92U/3Tama.net] >>646 どうやら0日を指定すると前月末になる仕様なのね 誤った理解で申し訳ない https://vbabeginner.net/find-number-of-days-in-month/
651 名前:デフォルトの名無しさん mailto:sage [2021/08/25(水) 18:17:55.62 ID:7AvRhiNY0.net] >>419 「100点取らなきゃいけない数学のテストが延々と続く」って 表現したことあるけど、あんたの表現は簡にして要を得てるな。
652 名前:デフォルトの名無しさん mailto:sage [2021/08/26(木) 01:04:55.66 ID:3Wwx5xcw0.net] >>641 まぁなんでもいいんだけどこういうテストしてみる TextBox1を設置してプロパティのmultilineをtrueにしておく んでコンボボックスのイベントの下の方にちょい付け加えてこうする Private Sub ComboBox3_DropButtonClick() Dim MyYear As Integer Dim MyMonth As Integer Dim LastDay As Integer With UserForm1 .ComboBox3.Clear MyYear = Val(Replace(ComboBox1.Value, "年", "")) MyMonth = Val(Replace(ComboBox2.Value, "月", "")) '来月1日の1日前から今月の対象月の終了日を算出する LastDay = Day(DateSerial(MyYear, MyMonth + 1, 0)) 'リストボックス3に今日の日付リストを入れる Dim r As Integer For r = 1 To LastDay .ComboBox3.AddItem r & "日" Next r End With TextBox1.Text = TextBox1.Text & Now & vbNewLine'←これ End Sub すると、combobox3でリスト開いた時だけじゃなくて、アイテム選択したときもイベントが発生していることがわかる
653 名前:デフォルトの名無しさん mailto:sage [2021/08/26(木) 01:06:07.22 ID:3Wwx5xcw0.net] そもそもcombobox3は結果表示のコントロールだから、ここに余計なもの置くべきじゃないわ Option Explicit Private Sub ComboBox1_Change() If ComboBox1.Value <> "" And ComboBox2.Value <> "" Then AddItemToComboBox3 End If End Sub Private Sub ComboBox2_Change() If ComboBox1.Value <> "" And ComboBox2.Value <> "" Then AddItemToComboBox3 End If End Sub Sub AddItemToComboBox3() Dim MyYear As Integer Dim MyMonth As Integer Dim LastDay As Integer With UserForm1 .ComboBox3.Clear MyYear = Val(Replace(ComboBox1.Value, "年", "")) MyMonth = Val(Replace(ComboBox2.Value, "月", "")) '来月1日の1日前から今月の対象月の終了日を算出する LastDay = Day(DateSerial(MyYear, MyMonth + 1, 0)) 'リストボックス3に今日の日付リストを入れる Dim r As Integer For r = 1 To LastDay .ComboBox3.AddItem r & "日" Next r End With End Sub
654 名前:デフォルトの名無しさん mailto:sage [2021/08/26(木) 01:06:23.79 ID:3Wwx5xcw0.net] >>650 続き Private Sub ComboBox3_DropButtonClick() '空にする End Sub Private Sub UserForm_Initialize() ComboBox1.AddItem "2021年" ComboBox2.AddItem "8月" End Sub
655 名前:デフォルトの名無しさん mailto:sage [2021/08/26(木) 01:08:23.20 ID:3Wwx5xcw0.net] Option Explicitつけないのがはやりなんかね 宣言しねぇのがはやりなんかね
656 名前:デフォルトの名無しさん [2021/08/26(木) 10:50:03.92 ID:3EUdzNHVM.net] 質問には必要だが 回答には不要
657 名前:デフォルトの名無しさん mailto:sage [2021/08/26(木) 14:29:16.05 ID:/k4Lkr6/0.net] VBAのコードを書くウインドウが何かのタイミングで個別ウインドウ表示に切り替わり、バラバラになって元に戻らなくなってしまったのですが、 プロジェクト一覧などが左側にある初期状態に戻すにはどうすれば良いのでしょうか?
658 名前:デフォルトの名無しさん mailto:sage [2021/08/26(木) 14:59:17.57 ID:2GwscEzmH.net] >>654 KYCU\SOFTWARE\Microsoft\VBA\7.1\Common\Dockを削除 完全な初期状態だと使いにくいから、自分流にカスタマイズした後Common以下を保存しとくといい
659 名前:641 mailto:sage [2021/08/26(木) 17:19:31.21 ID:eaDIsBK00.net] 皆様ありがとうございます。年と月の変更時に組み替えてできるようになりました >>642 それに変更しました >>644 試しましたが、リストの表示すらされませんでした >>645 その通りでした >>650 ありがとうございます。
660 名前:デフォルトの名無しさん mailto:sage [2021/08/26(木) 19:24:12.66 ID:/k4Lkr6/0.net] >>655 ありがとうございます!リセット機能が無いのですねぇ
661 名前:デフォルトの名無しさん mailto:sage [2021/08/28(土) 02:17:56.45 ID:XzPbf7xa0.net] 請求書つくってて1行ごとに仕切り線を挿れたいです 入力があるセルのセルの下に、オートシェイプ(0.75ptなどの線)を引くことはできませんか? 規定の線では太すぎて表がごちゃごちゃになってしまいます(細線では複数のプリンターでかすれて出ませんでした) Excelでは線の種類が少ないので望みの書類をつくれない、力技でオートシェイプで引きたいけど手作業では大変 請求書データをコピペしてボタンおしたらオートシェイプの線がセルに沿ってしかれる、としたいです
662 名前:デフォルトの名無しさん mailto:sage [2021/08/28(土) 02:53:29.63 ID:K563/rxVd.net] >>658 できます
663 名前:デフォルトの名無しさん mailto:sage [2021/08/28(土) 02:57:38.41 ID:K97Q7PgmM.net] 条件付き書式で罫線を引いて 線の太さは色をグレーにしてごまかす VBA使わないなw
664 名前:デフォルトの名無しさん mailto:sage [2021/08/28(土) 03:20:48.79 ID:k0s+jeSJH.net] >>658 '何か入力済のセルにオートシェイプで下線を引く Sub Macro1() For Each c In ActiveSheet.UsedRange If c.Text <> "" Then Call セルに下線(c.Row, c.Column) Next End Sub Sub セルに下線(r, c) x1 = Cells(1, c).Left x2 = Cells(1, c + 1).Left y1 = Cells(r + 1, 1).Top y2 = y1 ActiveSheet.Shapes.AddConnector(msoConnectorStraight, x1, y1, x2, y2).Select With Selection.ShapeRange.Line .ForeColor.RGB = RGB(0, 0, 0) '黒 .Weight = 0.75 '太さpt End With End Sub
665 名前:デフォルトの名無しさん mailto:sage [2021/08/28(土) 03:32:32.93 ID:XzPbf7xa0.net] >>660 それだとモノクロプリンタに対応できません あと太いのは太いのでやぼったいですよね >>661 休み明けに頑張ってみます オートシェイプで選択できる太さはすべて指定出来ますよね?
666 名前:デフォルトの名無しさん mailto:sage [2021/08/28(土) 03:44:32.68 ID:3njcewBU0.net] Shape系って使うのはいいんだけど削除してもオブジェクトが残るバグってない? 以前苦しんだ記憶が
667 名前:デフォルトの名無しさん mailto:sage [2021/08/28(土) 05:22:31.37 ID:1cfI7qZ1M.net] モノクロプリンタでもグレーぐらい印刷できるやろ
668 名前:デフォルトの名無しさん [2021/08/28(土) 11:23:58.24 ID:wL/wcpIq0.net] グレーはやめとけ
669 名前:デフォルトの名無しさん mailto:sage [2021/08/28(土) 11:34:50.96 ID:O3Ip+Qo9M.net] なんで?
670 名前:デフォルトの名無しさん mailto:sage [2021/08/28(土) 12:05:27.22 ID:ZUCCF//La.net] 目がアーモンドになる
671 名前:デフォルトの名無しさん mailto:sage [2021/08/28(土) 12:37:46.09 ID:XzPbf7xa0.net] >>664 一般的ではないですよね
672 名前:デフォルトの名無しさん [2021/08/28(土) 13:21:54.79 ID:GacscTPG0.net] 今時エクセルで請求書を作る会社って
673 名前:デフォルトの名無しさん mailto:sage [2021/08/28(土) 13:26:28.47 ID:XzPbf7xa0.net] >>669 なにでつくるの? Accessは古すぎたしファイルメーカーは高すぎであきらめた 売上額月に600万程度だからExcelでも十分なんだよね
674 名前:デフォルトの名無しさん mailto:sage [2021/08/28(土) 13:29:02.28 ID:Wn50/Mou0.net] 今時〇〇ってとか言うアホはスルーでいいよ
675 名前:デフォルトの名無しさん [2021/08/28(土) 13:34:29.23 ID:d2Jh3olLM.net] >>671 こういう馬鹿こそスルーだろ 請求書発行ソフトとか販売管理とか沢山あるだろ
676 名前:デフォルトの名無しさん mailto:sage [2021/08/28(土) 13:41:02.22 ID:y1FEzj5CM.net] と、馬鹿が申しております。
677 名前:デフォルトの名無しさん mailto:sage [2021/08/28(土) 13:41:56.34 ID:YRitmpAVd.net] >>672 市販のあわないだろ
678 名前:デフォルトの名無しさん mailto:sage [2021/08/28(土) 13:50:09.98 ID:+T8TIHFV0.net] なんでそこで経理ソフトって出てこないんだろう・・・
679 名前:デフォルトの名無しさん mailto:sage [2021/08/28(土) 14:11:22.66 ID:Wn50/Mou0.net] >>672 Excelで間に合ってるならそれでええやん 外野が何言ってんだかって感じ
680 名前:デフォルトの名無しさん mailto:sage [2021/08/28(土) 14:15:33.19 ID:OUVKMoF10.net] まあ間に合ってるってならエクセルでいいけど シェイプで線引くような帳票が間に合ってるといえるのか 俺なら罫線で間に合わせるけどな
681 名前:デフォルトの名無しさん mailto:sage [2021/08/28(土) 14:39:40.62 ID:nfIYqgR90.net] EXCEL帳票って多いよね 請求書に限らず
682 名前:デフォルトの名無しさん mailto:sage [2021/08/28(土) 14:43:17.47 ID:EKyvlYlFd.net] うちみたいな零細は帳票の枚数も少ないしExcelに罫線で十分なんだワ 専用ソフトは従業員が2桁人数になってからだな
683 名前:デフォルトの名無しさん mailto:sage [2021/08/28(土) 14:50:21.30 ID:+T8TIHFV0.net] 請求書の罫線にこだわるって何の意味があるんだろうと思う
684 名前:デフォルトの名無しさん mailto:sage [2021/08/28(土) 16:39:25.21 ID:XzPbf7xa0.net] >>680 ぶっといの気にならない? 単なる美的センス的なこだわりだからとくに意味はないんだけどね ぶっとい枠線だらけの表とかみるとデザインセンスというか旧時代的な印象うけてしまう
685 名前:デフォルトの名無しさん mailto:sage [2021/08/28(土) 16:40:04.12 ID:XzPbf7xa0.net] >>677 Excelで0.75とかひければ問題ないんですけどね
686 名前:デフォルトの名無しさん mailto:sage [2021/08/28(土) 16:49:11.38 ID:clAN9KQWM.net] そもそも罫線レイアウトが旧時代的だよ
687 名前:デフォルトの名無しさん mailto:sage [2021/08/28(土) 17:01:08.85 ID:Wn50/Mou0.net] >>681 さすがに旧時代的な印象だからって理由だったなら なぜExcelで?ってなるぞw
688 名前:デフォルトの名無しさん mailto:sage [2021/08/28(土) 17:03:13.47 ID:XzPbf7xa0.net] >>683 でも印刷だと最低限は必要じゃない? 数十行ならんでるととくに 交互に色変えるのはモノクロやプリンタによって大きくかわるからねえ
689 名前:デフォルトの名無しさん mailto:sage [2021/08/28(土) 17:04:05.90 ID:XzPbf7xa0.net] >>684 線以外は不満ない Accessも線選べないから細い四角をかいてならべてる
690 名前:デフォルトの名無しさん mailto:sage [2021/08/28(土) 17:15:47.71 ID:6AjG+XmcM.net] そこまで帳票にこだわるならCrystal Reportsとか使えばいいのに https://www.sap.com/japan/products/crystal-visual-studio.html
691 名前:デフォルトの名無しさん mailto:sage [2021/08/28(土) 17:21:15.10 ID:W6iJhC5F0.net] >>687 クリスタルレポート、アクティブレポート、PDFも別言語では使うけどEXCEL使う場合も多いからやっぱり抑えておくべきだよ。 特にここ、EXCEL VBAのスレだし。
692 名前:デフォルトの名無しさん mailto:sage [2021/08/28(土) 17:23:01.48 ID:XzPbf7xa0.net] >>687 >>688 はじめて聞きましたが世界標準なんですね 日本語ではあまり情報がないみたいですね
693 名前:デフォルトの名無しさん mailto:sage [2021/08/28(土) 17:27:11.56 ID:W6iJhC5F0.net] >>689 今は特に気にしなくていいよ。 そもそもVBAから使ったことないから VBAから使えるか分からんし。
694 名前:デフォルトの名無しさん mailto:sage [2021/08/28(土) 19:16:34.16 ID:6UyriYnia.net] VBA使って作るぐらいだから大げさなものではないと思うから正直なところ明細の罫線はなくてもかまわないのではと思う 罫線信仰については日本は細かいと思うわ それなら偶数行の背景に薄いグレーの背景色をつけたほうがきれいに見えるかと
695 名前:デフォルトの名無しさん mailto:sage [2021/08/28(土) 19:21:46.63 ID:P0+dXebs0.net] 帳票とかでも罫線レイアウトしてるのはただ単に四角く収まってるだけで別に使いやすくともなんともないんだよな 項目の意味より見た目の収まりでレイアウトしてるから意味不明だし書き込むスペースが足りなかったりするし
696 名前:デフォルトの名無しさん mailto:sage [2021/08/28(土) 19:22:16.12 ID:XzPbf7xa0.net] >>691 モノクロレーザーだと濃淡でないのでスクリーントーンみたいになるんですよね これみてたけど線があったりなかったり色付きだったり なんか世界的な基準とかあるんですかね? https://i.imgur.com/GQyzXam.jpg
697 名前:デフォルトの名無しさん mailto:sage [2021/08/28(土) 19:51:56.00 ID:6UyriYnia.net] どんなプリンタ使ってるか不明だけど印刷品質とかでモノクロレーザーでもそれなりな背景色つけられると思うから プリンタ側の設定みなおしてみたほうがよいのでは 基準なんて別にないでしょ作り手(提供者)のセンスだけかと
698 名前:デフォルトの名無しさん [2021/08/28(土) 20:04:28.62 ID:qSiuLs4Ta.net] 濃いグレーと薄いグレーがどう印刷されるかな
699 名前:デフォルトの名無しさん mailto:sage [2021/08/28(土) 20:16:48.82 ID:k0s+jeSJH.net] Excelの設定でも解像度が指定できるしモノクロレーザーの設定でも濃度や網点の細かさぐらい変更できるのに
700 名前:デフォルトの名無しさん mailto:sage [2021/08/28(土) 20:45:50.31 ID:XzPbf7xa0.net] >>696 300dpiだと文字がガタガタ 600dpiだと一番細いとされる点線が印刷されませんね
701 名前:デフォルトの名無しさん mailto:sage [2021/08/29(日) 10:34:22.30 ID:7BYV+8iF0.net] 任意のセルを選択(飛び地あり)→数式の入っているセル全て値貼り付けしたくて作成しました 動くのですが100万を超えるデータで動かすと1分以上かかってしまいます 2次元配列?を使えば高速化できますか 配列は使ったことがなく説明を読んでも難しく混乱していしまいました よろしくお願いします Dim Sc As Range Application.Calculation = xlManual Selection.SpecialCells(xlCellTypeFormulas, 23).Select For Each Sc In Selection Sc.Value = Sc.Value Next Sc …
702 名前:デフォルトの名無しさん mailto:sage [2021/08/29(日) 10:45:24.11 ID:lED3Ocwo0.net] >>698 selectionしなければ早くなるかも Sub Macro2() Application.Calculation = xlManual For Each Sc In Selection.SpecialCells(xlCellTypeConstants, 23) Sc.Value = 5 Next Sc End Sub
703 名前:デフォルトの名無しさん mailto:sage [2021/08/29(日) 10:45:44.98 ID:HK4nM9G2a.net] >>698 Selectionは極力使わない方がいい 数式の入ったCellsをUnionしていって、最後にUnion範囲に対して値貼り付けすれば?
704 名前:デフォルトの名無しさん mailto:sage [2021/08/29(日) 10:46:46.41 ID:lED3Ocwo0.net] 違った、こうか Sub Macro2() Application.Calculation = xlManual For Each Sc In Selection.SpecialCells(xlCellTypeConstants, 23) Sc.Value = Sc.Value Next Sc End Sub しかし選択してるのは定数なのに、valueをvalueにするの? あんまり意味ない気がするんだけど
705 名前:デフォルトの名無しさん mailto:sage [2021/08/29(日) 11:23:08.03 ID:7BYV+8iF0.net] >>701 ありがとうございます 試してみます コピペを繰り返すより代入した方が早い、と出たので上記のようになりました Range一辺倒だったのでUnionも調べてみます
706 名前:デフォルトの名無しさん mailto:sage [2021/08/29(日) 11:34:43.22 ID:IYYa0ToFM.net] >>698 > Selection.SpecialCells(xlCellTypeFormulas, 23).Select >>701 > For Each Sc In Selection.SpecialCells(xlCellTypeConstants, 23) > しかし選択してるのは定数なのに、valueをvalueにするの? > あんまり意味ない気がするんだけど …
707 名前:デフォルトの名無しさん mailto:sage [2021/08/29(日) 12:40:07.80 ID:TcEoTH9E0.net] >>698 数式セルだけに限定しないで 全部貼り付けちゃえばいいんじゃないの Sub Macro3() Dim temp() temp = Selection Selection = temp End Sub
708 名前:デフォルトの名無しさん mailto:sage [2021/08/29(日) 13:20:16.41 ID:TcEoTH9E0.net] >>698 あー選択が飛び地か 飛び地のRangeを順に取得する関数ってあったっけ 思いつかないので以下のように修正版。 splecialcellsを使う必要がない気がするが尊重して入れておいた // Sub Macro4() Application.Calculation = xlManual Application.ScreenUpdating = False myAddress = Split(Selection.SpecialCells(xlCellTypeFormulas, 23).Address, ",") Dim temp() For Each EE In myAddress temp = Range(EE) Range(EE) = temp Next End Sub
709 名前:デフォルトの名無しさん mailto:sage [2021/08/29(日) 13:22:53.01 ID:FZqboG1a0.net] >>704 ひとつずつ処理するよりもこういう考え方が正しい
710 名前:698 mailto:sage [2021/08/29(日) 13:24:14.88 ID:7BYV+8iF0.net] 698です 色々と案をありがとうございます >>701 は構文エラーとなってしまいました たしかにSelectionを使わなければ早くなりそうではあるのですが… またUnionでまとめる方法は飛び地がなければ良さそうですが、左に詰めて貼り付けされてしまい欲しい結果が得られませんでした >>704 こちらも隣接セルのみであれば問題なさそうなのですが複数セルだと1番左の列は問題ないものの他のセルが元データとは異なるデータがペーストされてしまいました 私の理解不足であれば申し訳ありません ちなみに列選択をした際に少しでもループを減らしたかったため数式セルに限定してみただけなので選択部分まとめてでも問題ありません
711 名前:698 mailto:sage [2021/08/29(日) 13:25:52.00 ID:7BYV+8iF0.net] >>705 更新せず書き込みすみません 試してみます
712 名前:デフォルトの名無しさん mailto:sage [2021/08/29(日) 13:34:12.51 ID:lED3Ocwo0.net] >>701 だけどスマン、間違えてた上にすげーアホなことやってたわ >>698 >任意のセルを選択(飛び地あり)→数式の入っているセル全て値貼り付けしたくて作成しました Sub tgggMacro2() Range("a1:z100").Value = Range("a1:z100").Value End Sub これでアカンのか ※cells.valueだとメモリ不足になる
713 名前:698 mailto:sage [2021/08/29(日) 18:40:28.03 ID:7BYV+8iF0.net] >>705 試してみました 成功する時と途中でオブジェクトの型が一致しない、とエラーになる場合があるようです 配列を理解できておらず、なぜエラーになるのか解決策にたどり着けていません 単独セルを選択している箇所でエラーになるように思います 実際に使用する際は1セルだけを選択することはまずないとは思うのですが… >>709 せっかく書いていただいたのですが求めている内容ではなさそうです 全て代入していいならほんとラクなんですけどね
714 名前:デフォルトの名無しさん mailto:sage [2021/08/29(日) 19:03:27.49 ID:FZqboG1a0.net] >>710 数式セルを値貼り付けするならなんで709じゃだめなん?
715 名前:698 mailto:sage [2021/08/29(日) 19:06:25.69 ID:7BYV+8iF0.net] >>711 対象のセルはファイルによって異なりますが数式をあえて残すセルもあります シート内の計算結果を全て値にしたい訳ではないのです
716 名前:デフォルトの名無しさん mailto:sage [2021/08/29(日) 19:29:10.08 ID:sPGAkNt40.net] 後だしぃ
717 名前:デフォルトの名無しさん mailto:sage [2021/08/29(日) 19:29:59.26 ID:sl9xswiTM.net] rangeを配列に格納 配列内で特定セルに該当する部分を値に書き換えて 一気に貼り付ける
718 名前:698 mailto:sage [2021/08/29(日) 19:35:54.89 ID:7BYV+8iF0.net] え…始めから飛び地ありの任意セルを選択した状態って書いてあるのに後出しと言われましても…
719 名前:デフォルトの名無しさん mailto:sage [2021/08/29(日) 19:50:08.61 ID:lED3Ocwo0.net] >>698 恐らくこれが一番早いと思います 飛び地で値でコピーペーストはできないし、 配列はしんどい Sub Macro2() Application.Calculation = xlCalculationManual ' 手動計算にする Application.ScreenUpdating = False ' 描画を停止する For Each Sc In Selection.SpecialCells(xlCellTypeFormulas, 23) Sc.Value = Sc.Value Next Sc Application.Calculation = xlCalculationAutomatic ' 自動計算にする Application.ScreenUpdating = True ' 描画を再開する End Sub >>711 要は ・選択部分を値にするマクロが欲しい ・値にする部分はフォーマットによって変わる ※社内で様々なフォーマットがあり、今はそれぞれを作り込む暇がないので「選択+値化」で逃がしている という事なのだろう >>714 飛び地ありで配列にうまく入れる方法ってあるのかな
720 名前:デフォルトの名無しさん mailto:sage [2021/08/29(日) 19:58:18.50 ID:1aCvHSMxH.net] ワークシート→配列は無関係なセルも一気に読み込んで、書き戻す時は1個ずつにしてもそこそこスピードアップできそうな気がする
721 名前:705 mailto:sage [2021/08/29(日) 21:48:01.74 ID:TcEoTH9E0.net] >>710 もう手間のかかる子だなぁw Sub Macro5() Application.Calculation = xlManual Application.ScreenUpdating = False myAddress = Split(Selection.SpecialCells(xlCellTypeFormulas, 23).Address, ",") Dim temp() For Each EE In myAddress If Range(EE).Count = 1 Then Range(EE).Value = Range(EE).Value Else temp = Range(EE) Range(EE) = temp End If Next Application.Calculation = xlCalculationAutomatic Application.ScreenUpdating = True End Sub 100万を超えるデータで動かすと何秒で終わるか教えてね
722 名前:デフォルトの名無しさん mailto:sage [2021/08/29(日) 22:34:44.25 ID:lED3Ocwo0.net] >>718 横だけど Dim temp() temp = Range(EE) Range(EE) = temp これは Range(EE).value =Range(EE).value じゃダメなの?
723 名前:デフォルトの名無しさん mailto:sage [2021/08/29(日) 22:40:30.11 ID:zuaG9uH70.net] 最後にそもそも値貼付けする理由がないとかいうオチが待ってそうだな
724 名前:705 mailto:sage [2021/08/29(日) 23:13:06.85 ID:TcEoTH9E0.net] >>719 あ!ほんとだ 配列という言葉にこだわっちゃって無駄なことをしてたねw Sub Macro6() Application.Calculation = xlManual Application.ScreenUpdating = False myAddress = Split(Selection.SpecialCells(xlCellTypeFormulas, 23).Address, ",") For Each EE In myAddress Range(EE).Value = Range(EE).Value Next Application.Calculation = xlCalculationAutomatic Application.ScreenUpdating = True End Sub
725 名前:705 mailto:sage [2021/08/29(日) 23:18:37.19 ID:TcEoTH9E0.net] そのそもrelaxtoolsとかになかったっけw 確認してないけど
726 名前:デフォルトの名無しさん mailto:sage [2021/08/29(日) 23:53:07.29 ID:V4lHBgfX0.net] エクセルVBAが、現在最も重宝される言語だってのはわかるし 自分も随分それで助けられてるんだけど、その次に学ぶべきなのは なんなんだろう。 VBA自体が終わった言語なのは明らかだし・・・。 JavaScript ? Rust? その他?
727 名前:デフォルトの名無しさん mailto:sage [2021/08/30(月) 00:31:07.88 ID:ckBh8waKH.net] >>723 言語は手段、重要なのは目的 何をやりたいかで選べ たとえばスマホアプリを作りたいならJava
728 名前:デフォルトの名無しさん mailto:sage [2021/08/30(月) 00:36:33.71 ID:HHMxmKKh0.net] VBAが必要な理由てさ、元データがExcelだから これ以上でもこれ以下でもないよね そしてそれはこれからも変わらないもの
729 名前:デフォルトの名無しさん mailto:sage [2021/08/30(月) 07:18:10.56 ID:lQLq+TuC0.net] >>723 js: ブラウザのコンソールに入力or拡張機能が非常に強力 web関連では大体なんでも出来る ただ言語の仕様が色々と特殊 php: webサーバー作りたいならこれ 本格運用しようとすると、覚える事は非常に多い 特にセキュリティが鬼門 rust: 新機能てんこもりの革新的な言語!は大体廃れる
730 名前:デフォルトの名無しさん mailto:sage [2021/08/30(月) 08:10:18.19 ID:g9J4xp5m0.net] >>723 VBAを学んだのなら VBA → VB.Net → C# が楽だろう。 VB.Netは文法的にはほぼVBAと一緒だから .Netの構成を覚えることに専念出来る。 VB.Netを覚えてしまえば次はC#だな。 逆に構成がVB.Netと殆ど一緒なので VBA → VB.Net を覚えるときより楽に 覚えることが出来るだろう。 もしWeb系をやりたいなら VBA → ASP.Net(VB) → ASP.Net(C#)と 言ったところか。 自信があるならVBA → C#でも構わないが、 折角だから寄り道してついでにVB.Net覚えて おいても損はないだろう。
731 名前:デフォルトの名無しさん mailto:sage [2021/08/30(月) 08:17:51.42 ID:g9J4xp5m0.net] JavaScriptはWeb系やるのであれば必須言語だが、これはWebやるときに必要に迫られて変な話だけどやらざるを得なくなって勝手に身につく。 DB扱うのにSQLが必須になるのと同じ。 Rustはまだ扱っている書籍やサイトが少ないのでもう少し待ってからでも良いと思う。
732 名前:デフォルトの名無しさん mailto:sage [2021/08/30(月) 12:20:59.93 ID:a1GphOXp0.net] >>723 もしかしてVBAしかできない人? 興味があるなら全部やればいいじゃん
733 名前:デフォルトの名無しさん mailto:sage [2021/08/30(月) 12:52:53.22 ID:4aBvuqYpa.net] 次にって言葉を汲んであげてもいいと思うな サラダ食ったあと次にカレーとデザートどっち食べるべきか聞かれても「興味あるなら全部食え」ってレス付ける?
734 名前:デフォルトの名無しさん mailto:sage [2021/08/30(月) 13:18:03.24 ID:a1GphOXp0.net] 食いたいもん食えよ 俺なら食いたいもん全部食うけどな
735 名前:デフォルトの名無しさん mailto:sage [2021/08/30(月) 13:19:04.91 ID:a1GphOXp0.net] そもそも興味があるのにやらないでいるこ理由がわからない
736 名前:デフォルトの名無しさん mailto:sage [2021/08/30(月) 13:29:28.16 ID:qdrPJ241M.net] ズラがずれてるぞ
737 名前: [] [ここ壊れてます]
738 名前:デフォルトの名無しさん mailto:sage [2021/08/30(月) 13:37:49.06 ID:ckBh8waKH.net] 今は個別の言語の文法よりも、大量のライブラリにどんな機能があるかを知る方が重要 クラスやAPIをどれだけ知ってるかで作れる物が決まるんで
739 名前:デフォルトの名無しさん mailto:sage [2021/08/30(月) 13:40:48.19 ID:a1GphOXp0.net] 結局やらないでしょう
740 名前:デフォルトの名無しさん mailto:sage [2021/08/30(月) 13:43:40.08 ID:txgJXV1kM.net] >>723 GASとかPowerFXとかSalesforceとか VBA上がりなら本格的なプログラミングよりローコードに行ったほうがすぐ役立てられてコスパいいよ
741 名前:デフォルトの名無しさん mailto:sage [2021/08/30(月) 17:19:00.03 ID:KZUgc5l+a.net] スレチなんでそろそろプログラマ板いってやればいいのでは
742 名前:デフォルトの名無しさん mailto:sage [2021/08/30(月) 18:03:03.80 ID:SLXKrFaKa.net] HTAのVBScriptでExcel操作って出来ましたっけ?
743 名前:デフォルトの名無しさん mailto:sage [2021/08/30(月) 20:36:23.51 ID:AiTAdVKh0.net] 2年くらい前にここでお世話になって、会社でもかなりVBA触るポジションができて、かなり成長した (皆さんありがとう) クラスモジュールを触ったことがないんだけど、経験のため触っておいた方がいい? 理解が深まるなら触りたい
744 名前:デフォルトの名無しさん mailto:sage [2021/08/30(月) 21:34:10.98 ID:PPAHi4pc0.net] エクセルでフィルターがかけられないんですが、 誰か助けてください 1列を指定して並び替えとフィルターを開いてフィルター(F)を押せません。 ちなみに空白業はないのですが、、、