Excelマクロでセルの数字を表示する方法
- Excelのマクロを使用して、セルに入力した数字を表示する方法を知りたいです。
- 具体的には、セルm7に入力した数字を表示したいです。
- 都度マクロを開けずに、セルに入力した数字を自動的に表示する方法を教えてください。
- ベストアンサー
セルの数字をマクロに
os xp excel 03 Sub a() Range(" k7").Select '----- カーソルをcell位置へ c = 8338 '<----- セルm7に入力した数字を表示したい With ActiveSheet '----- 次の行で cell m6 に作成----- =RSS|'8338.T'!現在値 .Cells(6, 13).Formula = "=RSS|'" & Format$(c, "0000") & ".T'! 現在値 " End With Range(" k9").Select '-----カーソルをcell位置へ End Sub 質問は c = 8338 '<----- セルm7に入力した数字を表示したい (1) 都度マクロを開けて c = の処に数字を入力ではなくセルm7に入力した数字を表示したい
- yuki-g
- お礼率55% (19/34)
- オフィス系ソフト
- 回答数2
- ありがとう数1
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>コードで不備がありましたら書き直し願いします。 特に不備ではありませんが、提示されたコードは全体の中の一部分でしょうか。 提示のコードが全てであれば Sub a() Range("M6").Formula = "=RSS|'" & Format$(Range("M7").Value, "0000") & ".T'! 現在値 " Range(" K9").Activate End Sub と省略しても大丈夫ではないでしょうか。 With ActiveSheet .Cells(6, 13).Formula ・・ End With の意味は、今見ているシートの6行目の3列目の式は・・ですので Range("M6").と同じです。Cellコマンドは行番号、列番号で指定する。 Rangeコマンドは、セル番地で指定する。どちらを使ってもらっても同じです。 RSS.exeは使用していませんが、Cと言う変数使用しなくても、式の中に指定できます。 Range(" k7").Select '----- カーソルをcell位置へ も動作する上で意味がないのでは? あくまでも、全体のコードであったとしてです。必要かもしれません。
その他の回答 (1)
- hallo-2007
- ベストアンサー率41% (888/2115)
>c = の処に数字を入力ではなくセルm7に入力した数字を表示したい c=Range("M7").Value でよろしいかと。 これまでのコードは、ご自身で考えられたのでしょうか? 具体的に何を実行したいのか、ちょっと疑問ですが。
補足
遅くまで有難うございます。 c=Range("M7").Value よろしいとか?ではなく「大正解です」 自分のレベルデは絶対に自信をもつて書けません。 「教えて」で回答をもらつてその一部を見様見真似で書き換えただけですが、回答者は今は思い出せませんが、長文を回答していただきました・信頼を感じる方と思っています。 コードで不備がありましたら書き直し願いします。 使用例ですが 他銘柄との比較に使います。
関連するQ&A
- Excel マクロ 入力があったらボタンを出したい
C3に入力があった場合、隣にボタンを表示させたいと考えています。 http://www.cocoaliz.com/excelVBA/index/17/ のようなサイトを参考に、以下のコードを書いてみました。 Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Address = "$C$3" Then If Not Range("C3") = "" Then With ActiveSheet.Buttons.Add(Range("D2").Left + 1, Range("D2").Top + 1, _ Range("D2:D3").Width - 1, Range("D2:D3").Height - 1) .OnAction = "あいうえお" .Characters.Text = "あいうえお" .Font.Size = 10 End With End If End If こうした場合、元々C3に何か入力されていると、 C3をSelectする度にボタンが作られてしまいます。 又、C3の内容を変更してEnterを押したり、他のセルをセレクトしても何も起きません。 C3に何か入力してEnter、又は他のセルをSelectした時のみボタンを表示させたいのですが、 何かいい方法ありますでしょうか? よろしくお願いいたします。
- ベストアンサー
- オフィス系ソフト
- エクセルVBAでセル選択するコードが変
エクセルのワークシートでVBAでセル選択するコードで理解に苦しむことがあります。 通常、Cells(2, 1)はセル番地で言えばA2セル Cells(4, 1)はセル番地で言えばA4セルです。 しかし、 With .Range("B5:B15")でくくれば .Cells(2, 1)はセル番地で言えばB6セルだと思います。 .Cells(4, 1) はセル番地で言えばB8セルだと思います。 ところが下記のコードを動かすと、なぜかC10:C12が選択されてしまいます。 この理屈がわかりません。 Sub test02() With Sheets("Sheet1") With .Range("B5:B15") .Range(.Cells(2, 1), .Cells(4, 1)).Select End With End With End Sub なお、 .Range(.Cells(2, 1), .Cells(4, 1)).Selectを .Range(“A2:A4”).Selectに書きかえると、希望のB6:B8が選択されます。
- ベストアンサー
- Excel(エクセル)
- vba 編集⇒Enter 繰り返しマクロ
vba 編集⇒Enter 繰り返しマクロ =RSS|'1000.T'!銘柄-----d列 rssの信号が不通の時は#N/A の表示 =RSS|'1000.T'!始値-----e列 =RSS|'1000.T'!高値-----f列 =RSS|'1000.T'!安値-----g列 =RSS|'1000.T'!終値-----h列 =RSS|'1000.T'!出来高---i列 上記 RSSを編集⇒Enter 操作を繰り返しで 各約9000行 各列は今現在の考えの予定ですが今フォームを考えている最中とvba入門開始の為 任意の列で、行11よりスタート出来る様にいていただければ !!。 Sub R_z() ' R_z Macro ' ' Keyboard Shortcut: Ctrl+z ' (1) ActiveCell.FormulaR1C1 = "=RSS|'1000.T'!出来高" (2) Range("M12").Select (1) (2) '?列 11行にカーソルを置くーーー’F2を押すーーEnterーーー12行にカーソルが移る (3) ActiveCell.FormulaR1C1 = "=RSS|'1001.T'!出来高" (4) Range("M13").Select (3) (4) '?列 ’F2を押すーーEnterーーー12行にカーソルが移る ActiveCell.FormulaR1C1 = "=RSS|'1002.T'!出来高" Range("M14").Select | | ActiveCell.FormulaR1C1 = "=RSS|'1003.T'!出来高" Range("M15").Select ’以下繰り返し操作 End Sub 上記マクロはKeyboardより取り込みです
- ベストアンサー
- オフィス系ソフト
- EXCELでENTERキーでセルの移動マクロ
こんにちは。 EXCELでENTERキーでセルの移動マクロを使いたいのですが、下記のマクロで改良を教えてもらいたいと思います。 まず、最初は必ず、セルB5にフォーカスしたいということ。そうして、できればOFFSETを使わないで、rangeかcellを使いたいのですが、お願いします。 Sub セル移動() Range("B5").Select Select Case ActiveCell.Column Case 1 ActiveCell.Offset(1, 1).Activate Case 2 ActiveCell.Offset(2, 2).Activate Case 3 ActiveCell.Offset(1, 1).Activate Case 4 ActiveCell.Offset(1, 1).Activate End Select End Sub
- ベストアンサー
- オフィス系ソフト
- Excelでマクロを使いセルの内容をコピー貼り付け
A1セルに111と入力してあるとします。 この時B1にaaa111aaaと入力するマクロを作りたいです。 A1に222があるとB1はaaa222aaaと入力したいです。 これをマクロで作ったのですが、次のようになり、A1の内容にかかわらず常にaaa111aaaとなってしまいます。 Sub Macro1() Range("A1").Select ActiveCell.FormulaR1C1 = "111" Range("B1").Select ActiveCell.FormulaR1C1 = "aaa111aaa" Range("B2").Select Application.Goto Reference:="Macro2" End Sub これのいらない行を削除し、コピーはA1の内容となるように修正して次のようにしました。 Sub Macro1() ActiveCell.FormulaR1C1 = Range("A1") Range("B1").Select ActiveCell.FormulaR1C1 = "aaa111aaa" Application.Goto Reference:="Macro2" End Sub まだペーストするときにA1の内容とならず直接入力となっています。 これをどう変更すればいいでしょうか?
- ベストアンサー
- オフィス系ソフト
- マクロが動きません
以下のようなプログラムでC3の値が変わるたびにA10の値に1を加えていきG3,H3が両方0になったらA10の値も0にする。C5の値が変わるたびにA15の値に1を加えJ3,K3が共に0になったらC5も0にするようにしました。 しかし、動作しません。 このシートの3行目は=シート名!セル番号 という形でほかのシートのセルの値が表示されるようになっています。G3、H3、J3、K3に手動で数値を入力した場合 は動作します。 ほかのシートのセルの値を表示させたセルの値が変化しても動作させる方法はないでしょうか> Private Sub worksheet_change(ByVal target As Range) With target If .Count > 1 Then Exit Sub If IsNumeric(.Value) = False Then Exit Sub If IsEmpty(.Value) = True Then Exit Sub If Not .Row = 3 Then Exit Sub Select Case .Column Case 3 Range("A10").Value = Range("A10").Value + 1 Case 5 Range("A15").Value = Range("A15").Value + 1 End Select End With If Range("g3").Value = 0 And Rang("h3").Value = 0 Then Range("A10").Value = 0 If Range("j3").Value = 0 And Rang("k3").Value = 0 Then Range("A15").Value = 0 End Sub
- ベストアンサー
- オフィス系ソフト
- 特定のセルのカーソル移動
こんばんは。教えてください。 入力可能なセルが2個だけのエクセルの表があります。 C6には「年」、E6「日付」が入ります。 それ以外のセルに触ると「ここは入力できません」と 表示が出て、C6にカーソルが戻ります。 VBにて作成してあります。 実は、この表は年配のパソコンがほとんど分からない方が 使う表で、保護をかけた時のエラーの長い文章が出ると パソコンが壊れたと思うらしく、わざと、保護はかけずに Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Application.Intersect(Target, Range("A1:IV5,A6,B6,E6,H6:IV6,A7:IV65536")) Is Nothing Then Else MsgBox "「年」と「月」以外の欄には入力できません" Range("C6").Select End Sub と入れて、簡単なメッセージでエラーを伝えるのみで シートの保護はしておりません。 これに追加して、記載することで、 C6のセルに入力後、「enter」を押すとE6にカーソルが移動 E6のセルに入力後、「enter」を押すとC6にカーソルが移動 が出来るようにしたいのです。 つまり、C6に入力したらE6に、E6に入力したらC6にカーソルが 「入力できるセル」だけを行き来したいのです。 どなたか教えてください。 宜しくお願いいたします。
- ベストアンサー
- Visual Basic
- マクロの簡素化
下記マクロです。 Range("AE6:AE1005").Select Selection.ClearContents Selection.Interior.ColorIndex = xlNone If Range("AD6").Value > 5 Then Range("AE6") = "*" Range("AE6").Select With Selection.Interior .ColorIndex = 3 End With Else End If If Range("AD7").Value > 5 Then Range("AE7") = "*" Range("AE7").Select With Selection.Interior .ColorIndex = 3 End With Else End If If Range("AD8").Value > 5 Then Range("AE8") = "*" Range("AE8").Select With Selection.Interior .ColorIndex = 3 End With Else End If 中略(セルを一個づつ指定しています) If Range("AD1004").Value > 5 Then Range("AE1004") = "*" Range("AE1004").Select With Selection.Interior .ColorIndex = 3 End With End If If Range("AD1005").Value > 5 Then Range("AE1005") = "*" Range("AE1005").Select With Selection.Interior .ColorIndex = 3 End With Else End If Range("AE3").Select 有るセルを参照しその値が5以上だったら別のセルに*マークとセルに色を付けるマクロですが、一個づつセル指定をしていますが、何とか短く出来ないでしょうか? お分かりになる方宜しくお願い致します。
- ベストアンサー
- その他(プログラミング・開発)
- 空白状態でEnterを押したら指定のセルに飛びたい
例えばF5セルで何も入力せずEnterを押したらC9に入力セルを飛ばしたくて 自分の力で調べた限りでは下のコードで可能なのですが Private Sub Worksheet_SelectionChange(ByVal Target As Range) With Range("F5,C9") If Not Intersect(Target(1), .Cells) Is Nothing Then Application.EnableEvents = False .Select Target(1).Activate Application.EnableEvents = True End If End With End Sub 上記コードはF5セルを選ぶと、次に飛ぼうとするC9セルが見えてしまいます。 これが見えずにできる他の方法があるか色々調べても見つかりませんでした; 何か可能な策はありますでしょうか・・?
- ベストアンサー
- その他MS Office製品
- アクティブでないシートのセルを選択
Excel VBAでアクティブでないシートのセルをSelectすることはできないのでしょうか。 Selectメソッドというのは,もともとそういうものなのでしょうか。 エラー: 「RangeクラスのSelectメソッドが失敗しました。」 コード Sub aaa() With Worksheets("Sheet2") .Range(.Cells(44, 1), .Cells(48, 21)).Select End With End Sub
- ベストアンサー
- その他MS Office製品
お礼
又の機会に お世話になります、丸投げ的な質問に回答して頂いて 有難うございました。
補足
hallo-2007さん たびたび有難うございます。 このコードは for to Next 文で使用を流用しました。 パクリデは有りません。 簡素化されたコードも大当たりで有難うございます。 次の件ですが最初と終わりの確認の意味です、f8でテストの時に役に立っています。 Range(" k7").Select '----- カーソルをcell位置へ 以上で自分の レベルデス。