- ベストアンサー
まとめて計算式を設定したい
WinXPでエクセル2003を使用しています。 例えばC1からC100までのセルの中に 整数だけ入っている状態で(数はランダム) その全てのセルに「セルの数字÷13.5」 というように、範囲内にまとめて「÷13.5」という 計算式を付加したい場合、良い方法はありますか。 よろしくお願いします。
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
100個程度では、ほとんど違いがありませんが、以下は、セル上のアクセスを減らしていますから、もし、1万とか2万になったら、その違いが出るはずです。 Sub FormulaChange() Dim myData As Variant Dim i As Long myData = Range("C1:C100").Value For i = LBound(myData, 1) To UBound(myData, 1) If IsNumeric(myData(i, 1)) And Not IsEmpty(myData(i, 1)) Then myData(i, 1) = "=" & myData(i, 1) & "/13.5" End If Next i Range("C1:C100").Formula = myData End Sub
その他の回答 (6)
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
Public Sub divied13_5() Dim r As Range Dim x As Range Set r = Range("C1:C100") For Each x In r x.Formula = "=" & x.Value & "/13.5" Next End Sub
- ja7awu
- ベストアンサー率62% (292/464)
「計算式を設定したい」ということだと思いますが、 それでしたら、こんな感じで如何でしょうか。 Sub SetFomula() Dim Rng As Range For Each Rng In Range("C1:C100") If Not (Rng.HasFormula Or IsEmpty(Rng)) And IsNumeric(Rng) Then Rng.Formula = "=" & CStr(Rng.Value) & "/13.5" End If Next Rng End Sub
- DoragonFang
- ベストアンサー率41% (91/221)
ご質問の内容はC列の整数に「÷13.5」という文字列を付加したいということでしょうか? (多分)もっとも簡単なVBAコードは次の通りです。 Sub StrAdd() Dim I As Integer Dim S As String S = "÷13.5" For I = 1 To 100 Cells(I, 3).Value = Cells(I, 3).Value & S Next End Sub ただひたすら”÷13.5"を付けていくだけです。 もし、ご質問の内容が、C列の数字をいっぺんに13.5で割るという処理をするのであれば、 何処でもいいので、適当なセルに13.5と入力し、そのセルをコピーします。 次にC1:C100の範囲を選択して、右クリックのメニューから「形式を選択して貼り付け」を選び、出てきたメニュー「演算」→「除算」をチェックしてOKします。 これで、C1:C100のセルがすべて13.5で割った数字に変わります。
- iiikkk
- ベストアンサー率37% (92/247)
#1です。 ミスです。 ダブルクォートでしたね。 =C1&"÷13.5"
- misatoanna
- ベストアンサー率58% (528/896)
セルD1に「=A1&"÷135"」と入力してD100までコピーし、 D列をコピーしてC列に「値」形式で貼り付け。 では?
- iiikkk
- ベストアンサー率37% (92/247)
VBAでやればいいのでしょうが、私はやり方を知らないので下記のようにしてます。 D1セルに =C1&'÷13.5' として、D1セルをD100までコピーします。 D列に出来たものをC列に値コピーします。
補足
早速ありがとうございます。 この方法でもOKですが C列のみで行う方法もしくはVBAを望みます。
補足
ありがとうございます。 後者の回答が欲しかったものです。 でもこの方法だと、元の数字が分からなく なってしまうので、欲をいえばC列のセルの中に 13.5で割った過程を残す方法はあるのでしょうか。 お願いします。