Excel VBA 質問スレ Part72

■ このスレッドは過去ログ倉庫に格納されています
2021/07/18(日) 08:42:15.37ID:KskL7bEXd
!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
2021/08/23(月) 08:53:51.78ID:cXrkxB5+0
>>609
初心者にはそれしか解法がわからない場合もあるかなと思って
プロシージャ分割とかも理解できない場合は、とりあえず動くプログラム作れたらなと
2021/08/23(月) 10:54:22.12ID:FgZeCk1s0
goto finaly
2021/08/23(月) 23:10:58.58ID:JXgHy/i50
ちょっとスレ違いで恐縮ですが知ってる方がいたら教えてください 3D CAD(catia v5、ソリッドワークス、NXなど)のVBAについて話題にしてるスレとかご存知の方いれば教えてください
2021/08/24(火) 01:04:28.30ID:O47VPk1P0
そんなものはない
2021/08/24(火) 01:15:14.20ID:F5g8S0IPM
>>612
これらの3D CADにVBAが載ってるの?
2021/08/24(火) 04:11:27.55ID:daNQErAcH
エスパーするとマクロのことだろ
616デフォルトの名無しさん (ワッチョイ 9f8e-ma+S)
垢版 |
2021/08/24(火) 05:20:46.31ID:TjlSba9p0
>>612
馬鹿は死ね
2021/08/24(火) 08:13:34.81ID:klPKE9MS0
>>612
そんなスレは存在しないし立てたとしても誰もレスしないだろう。
質問があるならこっちで聞けばひょっとすると誰か答えてくれるかもな

スレ立てるまでもない質問はここで 157匹目
https://mevius.5ch.net/test/read.cgi/tech/1624024239/
2021/08/24(火) 08:30:12.55ID:g24P+U87M
調べたら、SolidWorksはAPIでVBAとかC(++)とかから呼び出せるみたいだから、Excel VBA で呼ぶ範囲ならこのスレでも良いんじゃない?
CAD ソフト側の特有の動作は答えられる人少ないか居ないだろうけど
619デフォルトの名無しさん (ワッチョイ ffda-jkpn)
垢版 |
2021/08/24(火) 09:09:24.64ID:4r51bMHN0
>>618
そんな質問してないだろ
2021/08/24(火) 12:58:36.89ID:v4BujoFfM
SolidWorksのAPI呼んでなにかしようとするような奴がこんfなスレでVBAの質問なんてしないだろw
2021/08/24(火) 13:07:40.15ID:Ggt7zoavM
でも、3D CADのVBAって言っちゃうレベルの質問者さんだし...
622デフォルトの名無しさん (エムゾネ FF9f-tXhk)
垢版 |
2021/08/24(火) 15:14:02.93ID:WZMj7UxVF
馬鹿には無理
2021/08/24(火) 18:59:28.08ID:Tulkbq4hM
最悪go toもありだろ
2021/08/24(火) 20:36:36.02ID:DkRvLF/FM
おまいら、質問者を馬鹿にするのやめろよ
2021/08/24(火) 21:11:06.89ID:4FqDVhnYM
「貴方には無理」と言ってあげるのも親切
馬鹿が諦めず無理してるおかげで周囲は迷惑してる
2021/08/24(火) 21:17:10.14ID:PotHtuTn0
dllやAPIアリならもうなんでもvbaのような
2021/08/24(火) 21:17:46.98ID:PotHtuTn0
知ってたら答えるけど、あまりにも知ってる人が少なすぎる
メーカーに聞いた方が早いとおもう
2021/08/24(火) 22:24:25.02ID:EnLftN4na
>>612
話題になってませんが聞くならこっちのスレかな?

VBAなんでも質問スレ Part2 [転載禁止]©2ch.net

https://itest.5ch.net/mevius/test/read.cgi/tech/1432173164

0001 デフォルトの名無しさん 2015/05/21 10:52:44
VBAを使った質問ならなんでもござれ
本来の対象であるオフィスアプリを操作する以外の話もOK

ゲーム作り、Webアクセス、外部アプリの操作
COM(ActiveX)、Win32API、.NET Framework、DirectXなどなど
VBAで実行するものであればなんでも質問してください
2021/08/25(水) 00:31:39.65ID:1unhm7rk0
VBEの入力支援で「WorksheetFunction」って邪魔ですよね。
「Worksheets」が第一候補に表示されればいいのに。
2021/08/25(水) 01:55:37.60ID:7J8MKXIfa
辞書順だから仕方がないよね
2021/08/25(水) 07:25:33.24ID:SRu++D3OM
客先のお偉いさんにコンテンツの有効化を行わずにマクロを動かせと無茶振りされるなどした

決してデジタル署名云々をなどという話ではなく
既存のツールのコードをいじらずにWorkbook_Openのイベントを回避せよとのご指示を頂いたのだ
どうしたものか
2021/08/25(水) 07:35:04.03ID:ltkpDR880
>>631
他のブックにマクロを書いて
・イベント停止
・ブックopen

Sub foo()
Application.EnableEvents = False
Workbooks.Open (ThisWorkbook.Path & "\book1.xlsm")
Application.EnableEvents = True
End Sub
2021/08/25(水) 07:39:39.81ID:SRu++D3OM
あ、他ファイルの新規作成も一切ダメだそうです
2021/08/25(水) 07:50:37.91ID:ltkpDR880
じゃあ基本イベント停止にしてマクロを動かしたい時だけ
Application.EnableEvents = True
だな
2021/08/25(水) 08:12:30.95ID:SRu++D3OM
既存のツールのコードに手を加えるのはNG、別のファイルを作成するのもNG、数百人ほどいる作業員に配布してるツールだからExcelの設定を変更して回るのも現実的ではない
要するに作業工数を発生させずにイレギュラーに対応出来る特殊仕様用のツールを作れって事みたい
2021/08/25(水) 09:17:10.78ID:ZSU75DCm0
なんか話おかしくね
そのイレギュラー対応ツールはどこに置いて誰が使うことを想定してんだ
2021/08/25(水) 09:40:43.13ID:ZqZAJ3QxM
相手すんなよ偉いさんに振られた内容を盛って語ってるだけだろ
そもそも客先からの要請なら普通にできないって断ればいいだけだし
2021/08/25(水) 10:21:16.42ID:SRu++D3OM
いやまぁ断るんだけどさ
逐一ネットワークドライブのファイルとやりとりをしてるツールを社外の下請け業者にも使わせたいんだと
まぁ当然ながら下請け業者からはネットワークドライブに接続はできないんよ
だから何するにしてもエラーが出ます。なんならファイルを開いた時にコンテンツの有効化を押した時点でエラー出ますよ。って言ったらコンテンツの有効化を押さずにマクロを動かせば良いじゃないかって怒鳴りながら台パンされたのが昨日の話
639デフォルトの名無しさん (ワッチョイ ff24-jkpn)
垢版 |
2021/08/25(水) 10:33:09.92ID:PF+Wtj1u0
それで金もらうんでしょ
2021/08/25(水) 13:39:00.29ID:9wT7W/qy0
>>638
断るという方針を決めているなら解決だな
2021/08/25(水) 14:41:15.54ID:j973WKJq0
ユーザーフォームのコンボボックスでドロップボタンをおすと実行され、リストができるのですが、項目を選択しても反映されず空欄になってしまいます。
反映されるにはどうしたらいいでしょうか

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
642デフォルトの名無しさん (ラクッペペ MM4f-U159)
垢版 |
2021/08/25(水) 14:45:50.68ID:vgh3MVy/M
しらんけど
月の変更時にやるもんじゃね?
2021/08/25(水) 15:11:25.13ID:9wT7W/qy0
知らんけど変数の頭によくMyとかmyとか付ける人いるけど私の年とか私の月なの?
2021/08/25(水) 15:32:21.08ID:KYWpPte7M
mousedown でやるとか?
2021/08/25(水) 15:50:44.79ID:ZSU75DCm0
ComboBox3のイベントでやることじゃないんじゃね
2021/08/25(水) 17:16:17.54ID:92U/3Tama
DropButtonClickが発火していない可能性をまず見る

Combobox1とCombobox2の頭に「.」が付いていないことが原因か調べる

来月1日の1日前から今月の対象月の終了日…の日本語がよくわからんが、仮にMyMonthが12ならどうなるの?というのは気になる

そもそもDay関数で0日を指定しているんだから、どうやってもLastDayって0になるんでは?

最後のが原因かとは思うが、とりあえず気になったところを
2021/08/25(水) 17:19:41.69ID:92U/3Tama
>>646
どうやら0日を指定すると前月末になる仕様なのね
誤った理解で申し訳ない
https://vbabeginner.net/find-number-of-days-in-month/
2021/08/25(水) 18:17:55.62ID:7AvRhiNY0
>>419

「100点取らなきゃいけない数学のテストが延々と続く」って
表現したことあるけど、あんたの表現は簡にして要を得てるな。
2021/08/26(木) 01:04:55.66ID:3Wwx5xcw0
>>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でリスト開いた時だけじゃなくて、アイテム選択したときもイベントが発生していることがわかる
2021/08/26(木) 01:06:07.22ID:3Wwx5xcw0
そもそも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
2021/08/26(木) 01:06:23.79ID:3Wwx5xcw0
>>650続き

Private Sub ComboBox3_DropButtonClick()
'空にする
End Sub
Private Sub UserForm_Initialize()
ComboBox1.AddItem "2021年"
ComboBox2.AddItem "8月"
End Sub
2021/08/26(木) 01:08:23.20ID:3Wwx5xcw0
Option Explicitつけないのがはやりなんかね
宣言しねぇのがはやりなんかね
653デフォルトの名無しさん (ラクッペペ MM4f-U159)
垢版 |
2021/08/26(木) 10:50:03.92ID:3EUdzNHVM
質問には必要だが
回答には不要
2021/08/26(木) 14:29:16.05ID:/k4Lkr6/0
VBAのコードを書くウインドウが何かのタイミングで個別ウインドウ表示に切り替わり、バラバラになって元に戻らなくなってしまったのですが、
プロジェクト一覧などが左側にある初期状態に戻すにはどうすれば良いのでしょうか?
2021/08/26(木) 14:59:17.57ID:2GwscEzmH
>>654
KYCU\SOFTWARE\Microsoft\VBA\7.1\Common\Dockを削除
完全な初期状態だと使いにくいから、自分流にカスタマイズした後Common以下を保存しとくといい
2021/08/26(木) 17:19:31.21ID:eaDIsBK00
皆様ありがとうございます。年と月の変更時に組み替えてできるようになりました

>>642
それに変更しました

>>644
試しましたが、リストの表示すらされませんでした

>>645
その通りでした

>>650
ありがとうございます。
2021/08/26(木) 19:24:12.66ID:/k4Lkr6/0
>>655
ありがとうございます!リセット機能が無いのですねぇ
2021/08/28(土) 02:17:56.45ID:XzPbf7xa0
請求書つくってて1行ごとに仕切り線を挿れたいです
入力があるセルのセルの下に、オートシェイプ(0.75ptなどの線)を引くことはできませんか?

規定の線では太すぎて表がごちゃごちゃになってしまいます(細線では複数のプリンターでかすれて出ませんでした)

Excelでは線の種類が少ないので望みの書類をつくれない、力技でオートシェイプで引きたいけど手作業では大変
請求書データをコピペしてボタンおしたらオートシェイプの線がセルに沿ってしかれる、としたいです
2021/08/28(土) 02:53:29.63ID:K563/rxVd
>>658
できます
2021/08/28(土) 02:57:38.41ID:K97Q7PgmM
条件付き書式で罫線を引いて
線の太さは色をグレーにしてごまかす

VBA使わないなw
2021/08/28(土) 03:20:48.79ID:k0s+jeSJH
>>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
2021/08/28(土) 03:32:32.93ID:XzPbf7xa0
>>660
それだとモノクロプリンタに対応できません
あと太いのは太いのでやぼったいですよね
>>661
休み明けに頑張ってみます
オートシェイプで選択できる太さはすべて指定出来ますよね?
2021/08/28(土) 03:44:32.68ID:3njcewBU0
Shape系って使うのはいいんだけど削除してもオブジェクトが残るバグってない?
以前苦しんだ記憶が
2021/08/28(土) 05:22:31.37ID:1cfI7qZ1M
モノクロプリンタでもグレーぐらい印刷できるやろ
665デフォルトの名無しさん (ワッチョイ aeda-HBgv)
垢版 |
2021/08/28(土) 11:23:58.24ID:wL/wcpIq0
グレーはやめとけ
2021/08/28(土) 11:34:50.96ID:O3Ip+Qo9M
なんで?
2021/08/28(土) 12:05:27.22ID:ZUCCF//La
目がアーモンドになる
2021/08/28(土) 12:37:46.09ID:XzPbf7xa0
>>664
一般的ではないですよね
669デフォルトの名無しさん (ワッチョイ 298e-CEQY)
垢版 |
2021/08/28(土) 13:21:54.79ID:GacscTPG0
今時エクセルで請求書を作る会社って
2021/08/28(土) 13:26:28.47ID:XzPbf7xa0
>>669
なにでつくるの?
Accessは古すぎたしファイルメーカーは高すぎであきらめた
売上額月に600万程度だからExcelでも十分なんだよね
2021/08/28(土) 13:29:02.28ID:Wn50/Mou0
今時〇〇ってとか言うアホはスルーでいいよ
672デフォルトの名無しさん (ワントンキン MM52-jtj7)
垢版 |
2021/08/28(土) 13:34:29.23ID:d2Jh3olLM
>>671
こういう馬鹿こそスルーだろ
請求書発行ソフトとか販売管理とか沢山あるだろ
2021/08/28(土) 13:41:02.22ID:y1FEzj5CM
と、馬鹿が申しております。
2021/08/28(土) 13:41:56.34ID:YRitmpAVd
>>672
市販のあわないだろ
2021/08/28(土) 13:50:09.98ID:+T8TIHFV0
なんでそこで経理ソフトって出てこないんだろう・・・
2021/08/28(土) 14:11:22.66ID:Wn50/Mou0
>>672
Excelで間に合ってるならそれでええやん
外野が何言ってんだかって感じ
2021/08/28(土) 14:15:33.19ID:OUVKMoF10
まあ間に合ってるってならエクセルでいいけど
シェイプで線引くような帳票が間に合ってるといえるのか

俺なら罫線で間に合わせるけどな
2021/08/28(土) 14:39:40.62ID:nfIYqgR90
EXCEL帳票って多いよね
請求書に限らず
2021/08/28(土) 14:43:17.47ID:EKyvlYlFd
うちみたいな零細は帳票の枚数も少ないしExcelに罫線で十分なんだワ
専用ソフトは従業員が2桁人数になってからだな
2021/08/28(土) 14:50:21.30ID:+T8TIHFV0
請求書の罫線にこだわるって何の意味があるんだろうと思う
2021/08/28(土) 16:39:25.21ID:XzPbf7xa0
>>680
ぶっといの気にならない?
単なる美的センス的なこだわりだからとくに意味はないんだけどね
ぶっとい枠線だらけの表とかみるとデザインセンスというか旧時代的な印象うけてしまう
2021/08/28(土) 16:40:04.12ID:XzPbf7xa0
>>677
Excelで0.75とかひければ問題ないんですけどね
2021/08/28(土) 16:49:11.38ID:clAN9KQWM
そもそも罫線レイアウトが旧時代的だよ
2021/08/28(土) 17:01:08.85ID:Wn50/Mou0
>>681
さすがに旧時代的な印象だからって理由だったなら
なぜExcelで?ってなるぞw
2021/08/28(土) 17:03:13.47ID:XzPbf7xa0
>>683
でも印刷だと最低限は必要じゃない?
数十行ならんでるととくに

交互に色変えるのはモノクロやプリンタによって大きくかわるからねえ
2021/08/28(土) 17:04:05.90ID:XzPbf7xa0
>>684
線以外は不満ない
Accessも線選べないから細い四角をかいてならべてる
2021/08/28(土) 17:15:47.71ID:6AjG+XmcM
そこまで帳票にこだわるならCrystal Reportsとか使えばいいのに
https://www.sap.com/japan/products/crystal-visual-studio.html
2021/08/28(土) 17:21:15.10ID:W6iJhC5F0
>>687
クリスタルレポート、アクティブレポート、PDFも別言語では使うけどEXCEL使う場合も多いからやっぱり抑えておくべきだよ。
特にここ、EXCEL VBAのスレだし。
2021/08/28(土) 17:23:01.48ID:XzPbf7xa0
>>687
>>688
はじめて聞きましたが世界標準なんですね
日本語ではあまり情報がないみたいですね
2021/08/28(土) 17:27:11.56ID:W6iJhC5F0
>>689
今は特に気にしなくていいよ。
そもそもVBAから使ったことないから
VBAから使えるか分からんし。
2021/08/28(土) 19:16:34.16ID:6UyriYnia
VBA使って作るぐらいだから大げさなものではないと思うから正直なところ明細の罫線はなくてもかまわないのではと思う
罫線信仰については日本は細かいと思うわ
それなら偶数行の背景に薄いグレーの背景色をつけたほうがきれいに見えるかと
2021/08/28(土) 19:21:46.63ID:P0+dXebs0
帳票とかでも罫線レイアウトしてるのはただ単に四角く収まってるだけで別に使いやすくともなんともないんだよな
項目の意味より見た目の収まりでレイアウトしてるから意味不明だし書き込むスペースが足りなかったりするし
2021/08/28(土) 19:22:16.12ID:XzPbf7xa0
>>691
モノクロレーザーだと濃淡でないのでスクリーントーンみたいになるんですよね

これみてたけど線があったりなかったり色付きだったり
なんか世界的な基準とかあるんですかね?
https://i.imgur.com/GQyzXam.jpg
2021/08/28(土) 19:51:56.00ID:6UyriYnia
どんなプリンタ使ってるか不明だけど印刷品質とかでモノクロレーザーでもそれなりな背景色つけられると思うから
プリンタ側の設定みなおしてみたほうがよいのでは

基準なんて別にないでしょ作り手(提供者)のセンスだけかと
695デフォルトの名無しさん (アウアウウー Sa85-HBgv)
垢版 |
2021/08/28(土) 20:04:28.62ID:qSiuLs4Ta
濃いグレーと薄いグレーがどう印刷されるかな
2021/08/28(土) 20:16:48.82ID:k0s+jeSJH
Excelの設定でも解像度が指定できるしモノクロレーザーの設定でも濃度や網点の細かさぐらい変更できるのに
2021/08/28(土) 20:45:50.31ID:XzPbf7xa0
>>696
300dpiだと文字がガタガタ
600dpiだと一番細いとされる点線が印刷されませんね
2021/08/29(日) 10:34:22.30ID:7BYV+8iF0
任意のセルを選択(飛び地あり)→数式の入っているセル全て値貼り付けしたくて作成しました
動くのですが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
2021/08/29(日) 10:45:24.11ID:lED3Ocwo0
>>698
selectionしなければ早くなるかも

Sub Macro2()
Application.Calculation = xlManual
For Each Sc In Selection.SpecialCells(xlCellTypeConstants, 23)
Sc.Value = 5
Next Sc
End Sub
2021/08/29(日) 10:45:44.98ID:HK4nM9G2a
>>698
Selectionは極力使わない方がいい

数式の入ったCellsをUnionしていって、最後にUnion範囲に対して値貼り付けすれば?
2021/08/29(日) 10:46:46.41ID:lED3Ocwo0
違った、こうか

Sub Macro2()
Application.Calculation = xlManual
For Each Sc In Selection.SpecialCells(xlCellTypeConstants, 23)
Sc.Value = Sc.Value
Next Sc
End Sub

しかし選択してるのは定数なのに、valueをvalueにするの?
あんまり意味ない気がするんだけど
2021/08/29(日) 11:23:08.03ID:7BYV+8iF0
>>701
ありがとうございます
試してみます

コピペを繰り返すより代入した方が早い、と出たので上記のようになりました
Range一辺倒だったのでUnionも調べてみます
2021/08/29(日) 11:34:43.22ID:IYYa0ToFM
>>698
> Selection.SpecialCells(xlCellTypeFormulas, 23).Select

>>701
> For Each Sc In Selection.SpecialCells(xlCellTypeConstants, 23)
> しかし選択してるのは定数なのに、valueをvalueにするの?
> あんまり意味ない気がするんだけど

2021/08/29(日) 12:40:07.80ID:TcEoTH9E0
>>698
数式セルだけに限定しないで
全部貼り付けちゃえばいいんじゃないの

Sub Macro3()
Dim temp()
temp = Selection
Selection = temp
End Sub
2021/08/29(日) 13:20:16.41ID:TcEoTH9E0
>>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
2021/08/29(日) 13:22:53.01ID:FZqboG1a0
>>704
ひとつずつ処理するよりもこういう考え方が正しい
2021/08/29(日) 13:24:14.88ID:7BYV+8iF0
698です
色々と案をありがとうございます

>>701は構文エラーとなってしまいました
たしかにSelectionを使わなければ早くなりそうではあるのですが…

またUnionでまとめる方法は飛び地がなければ良さそうですが、左に詰めて貼り付けされてしまい欲しい結果が得られませんでした

>>704
こちらも隣接セルのみであれば問題なさそうなのですが複数セルだと1番左の列は問題ないものの他のセルが元データとは異なるデータがペーストされてしまいました

私の理解不足であれば申し訳ありません

ちなみに列選択をした際に少しでもループを減らしたかったため数式セルに限定してみただけなので選択部分まとめてでも問題ありません
2021/08/29(日) 13:25:52.00ID:7BYV+8iF0
>>705
更新せず書き込みすみません
試してみます
2021/08/29(日) 13:34:12.51ID:lED3Ocwo0
>>701だけどスマン、間違えてた上にすげーアホなことやってたわ

>>698
>任意のセルを選択(飛び地あり)→数式の入っているセル全て値貼り付けしたくて作成しました

Sub tgggMacro2()
Range("a1:z100").Value = Range("a1:z100").Value
End Sub

これでアカンのか
※cells.valueだとメモリ不足になる
2021/08/29(日) 18:40:28.03ID:7BYV+8iF0
>>705
試してみました
成功する時と途中でオブジェクトの型が一致しない、とエラーになる場合があるようです
配列を理解できておらず、なぜエラーになるのか解決策にたどり着けていません
単独セルを選択している箇所でエラーになるように思います
実際に使用する際は1セルだけを選択することはまずないとは思うのですが…

>>709
せっかく書いていただいたのですが求めている内容ではなさそうです
全て代入していいならほんとラクなんですけどね
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況