
No.5ベストアンサー
- 回答日時:
こんにちは。
#3の回答者です。
前回の内容を思い出しました。まだ、あの内容が続いているのですね。
Name1_Len =”5” の時
"=LEFT(D" & Target.Row & ",5)"
をどう書き直したらいいですか?
こうなります。
"=LEFT(D" & Target.Row & "," & Name1_Len &" )"
となります。
私個人としては、前回の内容を完全に理解しているわけではありません。どうしても、見えてこない部分があるので、隔靴掻痒の気持ちです。もしかしたら、こうではないか、ああではないか、と憶測を呼んでしまいます。
別の質問のようですが、私の理解の範囲でお答えしておきます。
>Range("AN" & Target.Row).FormulaR1C1 = "=IFERROR(RC[-10]/10000,"""")" を次のように書くにはどうしたらいいでしょうか?
Range("AN" & Target.Row).Formula = "=IFERROR(AN" & Target.Row /10000,"""")"
なお、通常、.FormulaR1C1 のプロパティを使うのではなく、.FormulaLocal か、.Formula にしてください。 (.FormulaLocal とは、ようするに、「日本語示」ということです。日付式などが該当します。)
>RC[-10]ではなくて、F列のTarget.Rowに置き換えたときは、式はどう書いたらいいでしょうか?
Range("AN" & Target.Row).Formula = "=IFERROR(F" & Target.Row /10000,"""")"
どうしても、R1C1型にしなければならない、マクロもありますが、今の段階では、出来る限り、数式はA1型にしたほうがよいでしょう。記録マクロは、あまりアテにしないほうが良いです。
>補足が出てこないのでお礼になってしまいます
余談ですが、もう一度、画面のレイアウトは変わるとは思います。私は、今、当面のこの表示に合わせて、表示用とログ収録のマクロを作り替えています。
WindFallerさん、いつも大変世話になっております
私の都合でお礼が遅れました
いつも親切に教えていただきましてありがとうございます
エクセルも式を入れるだけしか知らないレベルなのに
2か月ほど前からマクロに取り組んでいます
gooの皆さんに教えてもらったことは、いつでも見られるように
きちんと整理していますが、なにせこの年ですから応用がききません
教えてもらったことと同じことしかできません
特に今回のような&で結合するのがどうしてもエラーになってしまいます
答えがわかると簡単なんですが、一晩やってだめだったら質問させていただいています
ありがとうございました。大切に使わせていただきます
No.4
- 回答日時:
No.1・2です。
「Target」を使用しているというコトはChangeイベントではないかと思われますので、
>RC[-10]ではなくて、F列のTarget.Rowに置き換えたときは、式はどう書いたらいいでしょうか?
の意味がいまいち理解できません。
F列に数式を入れるのではなく、「Target」のセルに数式を入れるという解釈だと
No.1の方法そのままで
Target.Formula = "=INDIRECT(ADDRESS(ROW(),COLUMN()-10))/10000"
といった感じになるのではないかと思います。
前回書いたようにどうしても数式を入れなければならないのであれば別ですが、
単に結果を表示させたいだけであれば
With Target
.Value = .Offset(, -10) / 10000
End With
だけで大丈夫だと思うのですが・・・
※ 的外れならごめんなさいね。m(_ _)m
tom04さんこんばんは
いつも親切に教えていただきましてありがとうございます
先日も、条件付き書式で大変お世話になりました
お陰様で、私の狙った動きになっています
私も本当はマクロで式を書きたくないのですが、計算はTargetが変化した時だけではないので面倒なことになっています
Private Sub Worksheet_Change(ByVal Target As Range)
以外のやつ(?)でマクロで計算処理する方法も勉強してみます
教えていただいた方法でちょっとトライしてみます
ありがとうございました
No.3
- 回答日時:
こんばんは。
R1C1型は、相対参照式そのものですから、RC[-13]の対象列がD列だということは、Targetのアドレスは、Q列にないといけないことになりますね。
行がTarget.Rowの時とは、R1C1型には、関係がありません。
"=LEFT(RC[-13],5)” と書く以上は、Rは、今のある行であるという意味です。
それをA1型に書くなら、D列が分かっているなら、
Target.Formula = "=LEFT(D" & Target.Row & ",5)"
となりますが、D列を決めていない(Target列の-13列)になると、こういうスタイルになります。
If Target.Column = 17 Then 'これは、Q列という意味。ここが変われば、数式も変わる
myFormula = "=LEFT(RC[-13],5)"
newFormula = Application.ConvertFormula(myFormula, xlR1C1, xlA1, False)
Debug.Print newFormula
End If
'エラー処理はしていません。
すみません。補足が出てこないのでお礼になってしまいます
皆さんの助けがないとマクロが作れないのに、いつも、説明が下手で申し訳ありません
"=LEFT(D" & Target.Row & ",5)"
でねらい通りの値がセルにでています
ありがとうございました
ただし5を変数にするとうまくいきません
Dim Name1_Len As String と宣言して
Name1_Len =”5” の時
"=LEFT(D" & Target.Row & ",5)"
をどう書き直したらいいですか?
お手数ですが教えてください
No.2
- 回答日時:
No.1です。
たびたびごめんなさい。
>RC[-13]が列Dで・・・
を見逃していました。
Targetの列は常に「Q」列と決まっているのでしょうか?
そうであれば
=LEFT(INDIRECT("D"&ROW()),5)
だけでも大丈夫だと思います。
どうも失礼しました。m(_ _)m
No.1
- 回答日時:
こんばんは!
要するにTargetのセルはその行の13列左のセルの頭から5文字を表示させる数式にしたい!
というコトですかね?
数式ではなく、「値」をそのまま表示させる場合はOFFSET関数で対応できると思いますが・・・
とりあえず苦肉の策として
Target.Formula = "=LEFT(INDIRECT(ADDRESS(ROW(),COLUMN()-13,4)),5)"
としてみたらどうなりますか?
※ 的外れならごめんなさいね。m(_ _)m
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) マクロだと数式が表示される 2 2022/09/10 14:48
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/07/03 09:11
- PowerPoint(パワーポイント) ExcelのVBAコードについて教えてください。 3 2022/05/25 14:32
- Visual Basic(VBA) エクセルの数式で教えてください。 1 2023/07/31 15:49
- 工学 制御工学の問題について 2 2022/10/30 20:20
- Excel(エクセル) エクセルVBAでセルに表示されているとおりの数値を取得したい(時間の計算結果) 1 2022/03/30 17:52
- Excel(エクセル) 年月表示を取り出すには 5 2023/02/23 22:51
- Visual Basic(VBA) vbaエクセルマクロについて あるデータを作成し、デスクトップに.xlsx形式で保存するマクロを作成 6 2023/03/03 18:05
- Visual Basic(VBA) vbaエクセルマクロについて あるデータを作成し、デスクトップに.xlsx形式で保存するマクロを作成 2 2023/03/02 18:54
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルの関数について(日付で...
-
VBAを教えてください。次の行と...
-
EXCELにて複数列を同条件(色)...
-
列内で重複した各項目の最終行...
-
一行おきにコピーするマクロが...
-
ExcelでA列の内容をB列の回数だ...
-
シート保護の状態で行の追加を...
-
EXCEL コンマで区切った数字を...
-
Excelの非表示列も含めてコピー
-
[Excel VBA]空白セル以外に連番...
-
ある操作後に自動的にセルに斜...
-
エクセルで行挿入した際、自動...
-
EXCELで○ヶ月を○年○ヶ月に変換...
-
Excelで同じセルに箇条書きをし...
-
A1セルに入力したら、入力時間...
-
Excelで来月以降の日付のセルを...
-
エクセルでセルを10個分くらい...
-
Excelで、セル内改行もそっくり...
-
SUMに含まれる範囲から特定のセ...
-
空白でないセルの値を返す方法...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EXCELにて複数列を同条件(色)...
-
一行おきにコピーするマクロが...
-
エクセルで空白以外のセルの値...
-
Excelの非表示列も含めてコピー
-
シート保護の状態で行の追加を...
-
エクセルの関数について(日付で...
-
エクセルで反転コピー
-
エクセル VBA 指定の範囲内をコ...
-
エクセルで表示された値だけ行...
-
エクセル マクロ 貼り付け先が...
-
エクセルで行挿入した際、自動...
-
エクセルVBA 複数列をコピーす...
-
[Excel VBA]空白セル以外に連番...
-
特定の桁数を抽出
-
マクロ初心者です、小数点6桁で...
-
"=LEFT(RC[-13],5)"を書き換えたい
-
Excel VBAで日にちを入力して線...
-
【Excel-マクロ】グループとア...
-
Excelのマクロで不規則に連番を...
-
Excel 条件に従いセル移動するには
おすすめ情報
tom04さんこんばんはいつも大変お世話になっております。シートの設計が変わって、列が増えるたびに、式の一部のRC[-13]等の-13を数えなおさなければならないので、-13のような指定方法をやめて
列と行で指定することにしたので今書き換えにトライしているところです。私の説明が悪くてお詫びします。TargetのセルからRC[-13]ではなくて、式を書き込みたいセルから-13ということです
質問とは別の元のマクロはこれです(列が違います)。Range("AN" & Target.Row).FormulaR1C1 = "=IFERROR(RC[-10]/10000,"""")" を次のように書くにはどうしたらいいでしょうか?
RC[-10]ではなくて、F列のTarget.Rowに置き換えたときは、式はどう書いたらいいでしょうか?