Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


1870 / 13645 ツリー ←次へ | 前へ→

【71239】EXCELの計算での質問 初心者です。 12/2/13(月) 17:28 質問[未読]
【71240】Re:EXCELの計算での質問 ちん 12/2/13(月) 18:25 発言[未読]
【71241】Re:EXCELの計算での質問 初心者です。 12/2/14(火) 9:37 質問[未読]
【71375】Re:EXCELの計算での質問 vbawasureta_vol2 12/2/26(日) 2:49 発言[未読]
【71257】Re:EXCELの計算での質問 ちん 12/2/15(水) 20:28 発言[未読]
【71258】Re:EXCELの計算での質問 ちん 12/2/15(水) 20:37 発言[未読]

【71239】EXCELの計算での質問
質問  初心者です。  - 12/2/13(月) 17:28 -

引用なし
パスワード
   EXCEL VBAで表から値を一旦ワークに取得してワークの内容を計算して
結果を表示していますが、EXCELの表の値を変えたときに、再度マクロ
を動かしたくないので、式にして結果を再計算させたいのですが
全くイメージがつかないのでどなたか教えてください。

もっと色々計算していますが、抜粋して記載します。

お願いします。


EXCELシートでは

If CStr(Cells(1, 10)) <> "" Then
      Windows("AAA.xls").Activate
      Sheets("BBB").Select
      Cells(i, 10).Select
      WKBB3 = ActiveCell.FormulaR1C1
End If


  If CStr(Cells(1, 11)) <> "" Then
      Windows("AAA.xls").Activate
      Sheets("BBB").Select
      Cells(1, 11).Select
      WKBB4 = ActiveCell.FormulaR1C1
  End If
  
  WKBB = 0
  
  WKBB = WKBB3 + WKBB4
  
  Windows("AAA.xls").Activate
  Sheets("BBB").Select
  Cells(1, 12).Select
  ActiveCell.FormulaR1C1 = WKBB

【71240】Re:EXCELの計算での質問
発言  ちん  - 12/2/13(月) 18:25 -

引用なし
パスワード
   ▼初心者です。 さん:こんばんわ、ちんといいます。
関数を作成したいのでしょうか?
マクロを実行しないで、計算するほうほうですかね?

CELL(1,12)の位置、A12セルへ以下の式を入れてください。
=IF(AND(A10="",A11=""),"",A10+A11)

勘違いしてたらごめんなさい。
質問内容をもっと詳しく載せてください。
以上、参考までに・・・

【71241】Re:EXCELの計算での質問
質問  初心者です。  - 12/2/14(火) 9:37 -

引用なし
パスワード
   サンプルありがとうございます。

説明不足でした。
1000行ぐらいある表をDO関数を利用して計算して値を求めています。
いまのやり方だと、値をワークに入れてワークの値を計算して計算結果を
値でセルに返しています。この方法だと1箇所値を修正したら毎回マクロ
を実行する必要がありますが、結果のセルには、計算結果の値でなく
計算式を表示させたいのです。

例えば、"=RC[-2]+RC[-1]"にすればよさそうなのですが
このような漢字にすれば式でかえせそうなのですが
他のやり方があるなら教えてください。

【71257】Re:EXCELの計算での質問
発言  ちん  - 12/2/15(水) 20:28 -

引用なし
パスワード
   ▼初心者さん:こんばんわ、ちんといいます。
レス遅くなりすみません。
式を表示したいでよろしいのでしょうか?
勘違いしてたらすみません。

  If CStr(Cells(1, 10)) <> "" Then
    WKBB3 = Cells(1, 10).Formula  ''R1C1
  End If
  If CStr(Cells(1, 11)) <> "" Then
    WKBB4 = Cells(Gyou, 11).Formula ''R1C1
  End If

  wkbb = 0
  wkbb = "[" & WKBB3 & "]:[" & WKBB4 & "]"
 
  Cells(1, 12).Value = wkbb

以上、参考までに・・・

【71258】Re:EXCELの計算での質問
発言  ちん  - 12/2/15(水) 20:37 -

引用なし
パスワード
   ▼初心者さん:こんばんわ、  ちんといいます。
1000件あるデータをDOにより、計算式を表示する件ですが。

セルの値が入力されたら、その行のみ計算式を表示するにしてみては?

シートBBBのワークシートに、

Private Sub Worksheet_Change(ByVal Target As Range)
  'A1からC10を1行目から1000行目までかつ1列目から10列目までという条件
  If Target.Column >= 1 And Target.Column <= 10 Then
  Else
   Exit Sub
  End If
  If Target.Row >= 1 And Target.Row <= 1000 Then
  Else
   Exit Sub
  End If
  
  'セルの値に変更があったときに実行したい処理を記述
  Call 再計算(Target.Row, Target.Column)
End Sub

標準モジュールに以下の処理を記述する。
Sub 再計算(Gyou As Long, Retu As Long)

  If CStr(Cells(Gyou, 10)) <> "" Then
    WKBB3 = Cells(Gyou, 10).Formula  ''R1C1
  End If
  If CStr(Cells(Gyou, 11)) <> "" Then
    WKBB4 = Cells(Gyou, 11).Formula ''R1C1
  End If
  wkbb = 0
  wkbb = "[" & WKBB3 & "]:[" & WKBB4 & "]"
 
  Cells(Gyou, 12).Value = wkbb

End Sub

以上、参考までに・・・

【71375】Re:EXCELの計算での質問
発言  vbawasureta_vol2  - 12/2/26(日) 2:49 -

引用なし
パスワード
   横から失礼します。

あまりよく見ていないので間違っていたらすみません。
計算式をシートに出したいということでしょうか。
更に必要な時に算出したいのでしょうか。

であればシートの書式を文字列にしてみては?
後で算出したいのであれば該当の関数セルをパラメータとして
「Application.Evaluate」を使ってみては?
但し、パラメータは文字列である必要があるのでCStr関数で囲む必要があります。
セルの位置("a1:a5"など)だけセルに書く場合はシート関数を
「Application.WorksheetFunction.Sum」などのシート関数で
パラメータとして呼べば良いかと思います。

1870 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free