
いつも、大変お世話になっております。
vbaの記述で配列関数の部分が分からず投稿させていただきました。ご指導お願いいたします。
ご迷惑をおかけしないように、注意を払っておりますが、不行き等ございましたら、ご容赦ください。
具体的なコードと致しましては、下記です。
With ThisWorkbook.Worksheets("chart").Range("C4").Resize(myrows, 200)
.Formula = "=MIN(IF((作業NO=$A4)*(C$1<=作業日)*(作業日<=C$1+6),NO))"
End With
式を埋め込んで、一つ一つのセルを選択して「ctrl+shift+enter」ボタンを押せば、いいのですが手間なので、
自動的に一括して「ctrl+shift+enter」ボタンを押してもらえるような記述内容の変更の仕方をご指導いただけないでしょうか
当方、excel2000を使用しています。
よろしくお願いいたします。

No.3ベストアンサー
- 回答日時:
とりあえず確実に簡単にできる方法としては,次のようなマクロにします。
with thisworkbook.worksheets("chart")
.range("C4").formulaarray = "=MIN(IF((作業NO=$A4)*(C$1<=作業日)*(作業日<=C$1+6),NO))"
.range("C4").copy destination:=.range("D4").resize(1, 199)
.range("C4").resize(1,200).copy destination:=.range("C5").resize(myrows-1, 200)
end with
マクロ以前にエクセル画面で,どうやってその式を使うかと言えば
1.C4セルに数式を記入してCtrl+Shift+Enterで入力する
2.右に下にコピー貼り付ける
という手順を行います。
上述は,この「出来る手順」をそのままマクロに仕立てたものです。
先に範囲を選択してその式を記入し,Ctrl+Shift+Enterしても,意図した計算結果は得られません。
つまり
セル範囲まとめて.formulaarray = "=今の配列数式"
というマクロを書いても,上手く行かないということです。
ありがとうございました。
同じセルにコピーの行き先(destination)を指定できればいいのに、と思いましたが。
やりたいことはできました。
ありがとうございました。
No.2
- 回答日時:
ここの質問コーナーに答えている程度では、VBAで配列数式を問題にする例は無かった。
VBAでやるなら個々のセルをプログラムを組んで処理する、別の方法があるものだ。そちらを使うのが筋だろう。
配列数式の関数式をセルに埋め込むなど邪道だろう。
関数式だってVBAでセルに埋め込もうとは思わない。
出来るとしても、凝った方法を使いすぎだと思う。質問者はそこまでVBAの熟練者なのか。
他の方法ではできないのか。
ーー
配列数式を離れて、やりたいことをデータ例をあげて、説明してみたらどうすか。
読者に数式を読み解かせ、Resizeしてみたりして、なにをやりたいか意味がわかりにくい。
>式を埋め込んで、一つ一つのセルを選択して「ctrl+shift+enter」ボタンを押せば、いいのですが手間なので、
なぜそうなるのか情況を説明してないのでは。?
MINならMINを求めるセルだけで良いのでは。
ーーー
例えば、先日のわたしの回答例だが
A2:C9の名前を「あ1」とつけた場合
Sub test01()
Worksheets("Sheet2").Range("a2:C9").FormulaArray = "=あ1"
End Sub
は、コピーと同じで
Sub test02()
Worksheets("Sheet1").Range("a2").CurrentRegion.Copy Worksheets("Sheet2").Range("a2")
End Sub
出できると思う。
ーー
よくある条件付き加算の場合
例データ
A2:B10
a1
b2
c3
d4
a5
d6
c7
a8
s9
で、aの行のB列を足すのは、配列数式操作は 例えばC12セルに、=SUM(IF(A2:A10="a",B2:B10,0)) と入れて Shift+CTRL+ENTERで14になるが、
例えばD12にVBAでセットする場合は
Sub test03()
Range("D12").FormulaArray = "=SUM(IF(A2:A10=""a"",B2:B10,0))"
End Sub
の実行で出来た。
こういうのは参考になるかな?
質問の場合はどううまく行かないのか。
No.1
- 回答日時:
.Formula = "=MIN(IF((作業NO=$A4)*(C$1<=作業日)*(作業日<=C$1+6),NO))"
↓
.FormulaArray = "=MIN(IF((作業NO=$A4)*(C$1<=作業日)*(作業日<=C$1+6),NO))"
ということとは違いますか。
解答ありがとうございます。私の説明不足で、申し訳ございません。
ご教授いただいた記述(.FormulaArray)ですと、resizeしたほかのセルも全て同じ値(絶対参照)になってしまいます。
これを、解消するためには、Formula で式を埋め込むしかないと思うのですが、その後で、まとめて 各セルに「ctrl+shift+enter」ボタンをおすなんて、記述ができればと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Excel(エクセル) エクセルのVBAにショートカットキーの割り当て 3 2022/07/13 14:19
- Visual Basic(VBA) VBAでoutlook365が起動しません。 4 2022/08/25 13:31
- Visual Basic(VBA) まとめシートから集計シートへA列のコードが一致したら1行コピーするマクロをネット上で見つけました。こ 1 2022/08/30 14:11
- Visual Basic(VBA) Changeイベントで複数セルへの貼り付けおよび値削除時に1個目のセルのみエラーになる 3 2022/12/21 09:07
- Visual Basic(VBA) VBA 参照先で選んだファイルをコピーし、出力先に別名で保存したい 8 2022/05/13 20:37
- Windows 10 Windowsのショートカットキーの割り当てについて質問です。 Ctrl+Shift+Rという入力を 1 2022/11/07 09:53
- Visual Basic(VBA) Excelにて、シート1の行を削除するとシート2のシート1と同じ番号の行も削除したい 3 2022/05/08 04:24
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/03/27 13:25
このQ&Aを見た人はこんなQ&Aも見ています
-
あなたの「必」の書き順を教えてください
ふだん、どういう書き順で「必」を書いていますか? みなさんの色んな書き順を知りたいです。 画像のA~Eを使って教えてください。
-
何回やってもうまくいかないことは?
みなさんには、何回やってもうまくいかないことはありますか?
-
最強の防寒、あったか術を教えてください!
とっても寒がりなのですが、冬に皆さんがされている最強の防寒、あったか術が知りたいです!
-
洋服何着持ってますか?
洋服を減らそうと思っているのですが、何着くらいが相場なのかわかりません。
-
集中するためにやっていること
家で仕事をしているのですが、布団をはじめ誘惑だらけでなかなか集中できません。
-
Excelで配列数式を入力できない
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・「これはヤバかったな」という遅刻エピソード
- ・初めて自分の家と他人の家が違う、と意識した時
- ・いちばん失敗した人決定戦
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【マクロ】1回目の実行後、2...
-
エクセル内に読み込んが画像の...
-
Excelのメニューについて
-
Excelで作成した出欠表から日付...
-
Excel 偶数月の15日(土日祝...
-
Excelの数式について教えてくだ...
-
勤務外時間を出す表が作りたい
-
VLOOKUP FALSEのこと
-
エクセルの数式について教えて...
-
【マクロ】参照渡しについて。...
-
Excel 日付の表示が直せません...
-
Excelの条件付書式について教え...
-
マクロを実行すると、セル範囲...
-
【マクロ】参照渡しとモジュー...
-
【マクロ】シート追加時に同じ...
-
Excelファイルを開くと私だけVA...
-
Excelのデーターバーについて
-
エクセルの設定、特定の列以降...
-
別のシートの指定列の最終行を...
-
エクセル 同じ行の隣り合う数字...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【マクロ】重複する同じ行を、...
-
Excelの条件付き書式のコピーと...
-
vba 印刷設定でのカラー印刷と...
-
VBA の単語の意味を教えて下さい。
-
Excel 日付の表示が直せません...
-
エクセル 同じ行の隣り合う数字...
-
エクセル条件付き書式について。
-
エクセルの数式につきまして
-
ファイル名の変更
-
エクセル 数字のみ抽出につて
-
Excelの開始ブックを固定したい...
-
エクセルの数式について教えて...
-
エクセルのセルをクリックする...
-
=INDIRECT(RIGHT(CELL("filenam...
-
エクスプローラーで見ることは...
-
Excelの関数で質問です
-
至急お願いいたします 屋上の備...
-
エクセルでセルに入力する前は...
-
関数を教えて下さい
-
Excel 関数での質問です
おすすめ情報