『WorksheetFunctionの使い方』(アール) E列に年齢、F列に年代があり、年代は関数で「=INT(E2/10)*10」が入っています。これをVBAのWorksheetFunctionを使ってフィルダウンすることができますでしょうか。どのような記述をしたら良いか教えてください。 __E___F___  年齢 年代  52  50  39  30 < 使用 Excel:Excel2021、使用 OS:Windows10 > ---- 2021なのでスピルを使えばいいんじゃないでしょうか。 =INT(E2:E3/10)*10 (フォーキー) 2024/01/12(金) 10:53:16 ---- 説明不足でしたので追加します。 Range("F2") = WorksheetFunction.INT(E2/10)*10 として実行すると「オブジェクトはこのメソッドプロパティまたはメソッドをサポートしていません」とえらーになります。INT関数は利用できないということでしょうか?解決策がお判りになる方教えてください。 (アール) 2024/01/12(金) 12:54:10 ---- オートフィルしたいということだったのでは? セルに関数を埋め込みたいのではないのですか? ちなみにWorksheetFunction.INTはありません そのかわりVBA.Intが有ります ただの Int でもOK (´・ω・`) 2024/01/12(金) 12:59:45 ---- ´・ω・`さん ありがとうございます。 Range("F2") = INT(E2/10)*10 で実行すると「0」が帰ってきました。何がいけないのか教えてください。 (アール) 2024/01/12(金) 13:28:21 ---- >Range("F2") = INT(E2/10)*10 → Range("F2").Formula = "=Int(E2 / 10) * 10" スピルを使った例 Sub test() Dim LastR As Long LastR = Cells(Rows.Count, "E").End(xlUp).Row Range("F2").Formula2 = "=Int(E2:E" & LastR & "/ 10) * 10" End Sub (フォーキー) 2024/01/12(金) 13:36:43 ---- VBAだからスピルじゃなくて良かったかも >Range("F2").Formula2 = "=Int(E2:E" & LastR & "/ 10) * 10" Range("F2").Resize(LastR - 1).Formula = "=Int(E2 / 10) * 10" (フォーキー) 2024/01/12(金) 13:49:15 ---- > Range("F2") = INT(E2/10)*10 > で実行すると「0」が帰ってきました。何がいけないのか教えてください。 E2はE2セルとは無関係な、E2という変数と解釈され、 それは何も代入していないので、計算上 0と解釈されているためです。 そもそもモジュールの冒頭に、Option Explicitを入れる方式にしておけば、 E2が未宣言の変数と察知して警告を出してくれます。 そのような自動設定(Option Explicitの自動挿入)ができますので、調べて そうした設定にしておくことを推奨します。 http://officetanaka.net/excel/vba/beginner/06.htm を参照。 文字どおりフィルダウンするなら、 FillDownメソッドがあります。Range("F2:F3").FillDown です。 WorksheetFunctionというのは、VBAのなかでワークシート関数を計算手段に用いるためのものです。 WorksheetFunction.Intが機能しないのは既に説明がありました通り。 > WorksheetFunctionを使ってフィルダウンすることができますでしょうか。 に対しては「できません」がストレートな答え。こういうのは"虻蜂取らず"といいます。 (xyz) 2024/01/12(金) 13:57:00 ---- フォーキーさん ありがとうございます。 Value、Formula、Formula2 なんとなくですが理解しました。 XYZさん 知らぬ間に2つの質問をしていました。失礼しました。 (アール) 2024/01/12(金) 17:24:31 ---- それでこちらの説明は理解されたのでしょうか。 ・Option Explicitの自動設定はされました? ・WorksheetFunctionは式をセルに作成する機能は持たないこと、 ・FillDownメソッドの使いかた、等々。 失礼しましただけで済まされても困ります。 (xyz) 2024/01/12(金) 18:20:24 ---- >INT関数は利用できないということでしょうか WorksheetFunctionではワークシート関数でVBA関数と同じ名前の物は使用できません VBA関数については以下のサイトを参考にしてください。 https://excel-ubara.com/EXCEL/EXCEL903.html (IT) 2024/01/12(金) 20:36:13 ---- 「Visual Basic で使用できるワークシート関数一覧」はこちら↓を参照してください。 https://learn.microsoft.com/ja-jp/office/vba/excel/concepts/events-worksheetfunctions-shapes/list-of-worksheet-functions-available-to-visual-basic (xyz) 2024/01/12(金) 23:09:56