[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『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
オートフィルしたいということだったのでは? セルに関数を埋め込みたいのではないのですか?
ちなみにWorksheetFunction.INTはありません そのかわりVBA.Intが有ります ただの Int でもOK (´・ω・`) 2024/01/12(金) 12:59:45
(アール) 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
XYZさん 知らぬ間に2つの質問をしていました。失礼しました。
(アール) 2024/01/12(金) 17:24:31
それでこちらの説明は理解されたのでしょうか。 ・Option Explicitの自動設定はされました? ・WorksheetFunctionは式をセルに作成する機能は持たないこと、 ・FillDownメソッドの使いかた、等々。 失礼しましただけで済まされても困ります。
(xyz) 2024/01/12(金) 18:20:24
(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
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.