ワークシートにて
=TRIMMEAN(OFFSET(R2C2,0,0,COUNTA(A:(A)),1),0.2)
こちらを計算しているのですが、処理の関係でVBA上での記載が必要となりました。
worksheet.functionを使用しての書き直しをしているのですが、
offset以下の表記がよくわからず、苦戦しています。
.Cells(1, 6).Value =
WorksheetFunction.TrimMean
(.Offset(Cells(2, 2), 0, 0, WorksheetFunction.CountA("A:A"), 1), 0.2)
↑見やすい位置で改行しています。ご了承ください。
どのように記載すればよろしいでしょうか。教えてください。
No.3ベストアンサー
- 回答日時:
こんばんは
関数式があるのなら、面倒な変換をしない方が簡単です。
でも、その前に・・
ご提示の式をそのまま入力すると、ワークシートに拒否されますので、
=TRIMMEAN(OFFSET($B$2,0,0,COUNTA(A:A),1),0.2)
であろうと勝手に解釈しました。
また、ご提示のコードはWith文のなかにあるものと解釈。
.Cells(1, 6).FormulaLocal = "=TRIMMEAN(OFFSET($B$2,0,0,COUNTA(A:A),1),0.2)"
.Cells(1, 6).Value = .Cells(1, 6).Value
でもいけると思います。
内容としては、エクセルが計算した計算式の結果を、セルに再代入しています。
※ F1セルの書式が「文字列」になっていないことが条件になります。
回答ありがとうございました。
なるほど、あえて関数を変換せずに代入させる方法ですね。
難しく考えず、スマートにできました。
推測もありがとうございました。説明不足で申し訳ありません。
No.2
- 回答日時:
すみません書き飛ばしました
VBAではObject.Offset(0, 0)は同じObject(基準)を示しますので書く必要がありません。したがって
ws.Cells(2, 6).Value = .TrimMean(ws.Cells(2, 2).Resize(.CountA(ws.Columns(1)), 1), 0.2)
で良いと思います
回答ありがとうございました。
worksheetfunctionもwithで使うことができるとは知りませんでした。
勉強になります。
No.1
- 回答日時:
こんばんは
ワークシート関数のOffset引数 OFFSET(基準,行数,列数,高さ,幅) は
VBAの場合 WorksheetFunctionを使わず
基準.OFFSET(行数,列数).Resize(高さ,幅)みたいに書いた方が私的には分かり易いです
これを踏まえると
Dim ws As Worksheet
Set ws = ActiveSheet
With WorksheetFunction
ws.Cells(2, 6).Value = .TrimMean(ws.Cells(2, 2).Offset(0, 0).Resize(.CountA(ws.Columns(1)), 1), 0.2)
End With
で結果は求められると思いますが、何しろ私は関数が良く解らないので
もっと良い書き方があるかも知れませんので参考程度でお願いします
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) VBAで、シート間の転記するコードをFOR~NEXTで教えてください。 9 2023/04/30 20:04
- Visual Basic(VBA) 3つの条件を指定してVBAで行を削除したい 条件1:分類1が重複 条件2:分類2が重複 条件3:個数 6 2022/06/24 11:07
- Visual Basic(VBA) Excel VBAの書き方 1 2022/03/28 12:09
- Visual Basic(VBA) 列と行の名前(重複あり)が交差するセルに、データを入力したい 2 2022/06/25 22:42
- Visual Basic(VBA) オブジェクトが見つかりません 1 2023/06/24 19:43
- Excel(エクセル) 並べ替え、ソートの構文がわからない。 お世話になります。VBA超初心者です。 エクセルでワークシート 2 2023/06/28 21:00
- Visual Basic(VBA) VBAで質問ですが、皆さんはどの様に導き出しているのでしょうか? 6 2022/05/03 21:53
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Excel(エクセル) vba 転記するときの最終行について 2 2022/09/03 09:31
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
wordの何も書かれていない2ペー...
-
Chr(13)とChr(10)の違いは?
-
PDFの改行URLを有効にす...
-
棒グラフ 横軸の縦書き2列にし...
-
【エクセル】セル最後にある無...
-
wordで均等割り付けをするとき...
-
Excel セル内の最初と最後の改...
-
excelで勝手に改行されます
-
履歴書の志望動機の所で、「ま...
-
パワーポイントのテキストボックス
-
Word 途中で勝手に改行してしま...
-
VBA フォームのテキストボック...
-
Accessにインポートしようとす...
-
EXCEL(VBA) 末尾の改行のみ削...
-
Googleサイトのサイト名改行方法
-
イミディエイトウインドウの最...
-
エクセルでの組み文字は?
-
エクセル文字入力でセル内での...
-
ベタ打ちってなんですか?
-
Excel VBAで改行を含めたセルの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
wordの何も書かれていない2ペー...
-
Chr(13)とChr(10)の違いは?
-
【エクセル】セル最後にある無...
-
wordで均等割り付けをするとき...
-
履歴書の志望動機の所で、「ま...
-
PDFの改行URLを有効にす...
-
Accessにインポートしようとす...
-
excelで勝手に改行されます
-
EXCELで"-"で勝手に自動改行し...
-
棒グラフ 横軸の縦書き2列にし...
-
Tera Term のマクロでの改行コ...
-
PCの表示の文書をコピーすると?
-
イミディエイトウインドウの最...
-
EXCEL(VBA) 末尾の改行のみ削...
-
バッチで指定ファイルの文末に...
-
Excel セル内の最初と最後の改...
-
パワーポイントのテキストボックス
-
パワーポイントのリンク管理に...
-
Word 途中で勝手に改行してしま...
-
エクセルでセル内改行の複数行...
おすすめ情報