[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『セルの値の書き換えじゃなくてセルの値を表示したい』(hiro)
セルの情報を表示する練習です。
「フォント」と「行の高さ」は表示できるのですが、値が思った動作をしません。これを実行して"値"と入力すると、Cells(6.1)の値が書き換えられます。
どこがおかしいか、指摘していただけないでしょうか。
よろしくお願いします。
Sub test() Dim rng As Range Set rng = Cells(6, 1) rng = InputBox("Cells(6, 1)の値、フォント、行の高さ?") If rng = "値" Then MsgBox (rng.Value) ElseIf rng = "フォント" Then MsgBox (rng.Font.Name) ElseIf rng = "行の高さ" Then MsgBox (rng.RowHeight) Else MsgBox ("値・フォント・行の高さのいずれかを入力") End If End Sub
< 使用 Excel:unknown、使用 OS:unknown >
(γ) 2018/05/06(日) 11:23
しかし InputBox ("Cells(6, 1)の値、フォント、行の高さ?")からrngへの代入をやめても(rng = を削除しても)、思う通りに動かないのはなぜでしょうか…。
きっと馬鹿な勘違いをしているのだと思うのですが…よろしければお願いいたします。
(hiro) 2018/05/06(日) 22:32
目的は勉強ということでしょうか。
Sub test() Dim rng As Range Dim s As String
Set rng = Cells(6, 1)
s = InputBox("Cells(6, 1)の値、フォント、行の高さ?")
If s = "値" Then MsgBox rng.Value ElseIf s = "フォント" Then MsgBox rng.Font.Name ElseIf s = "行の高さ" Then MsgBox rng.RowHeight Else MsgBox "値・フォント・行の高さのいずれかを入力" End If End Sub
(γ) 2018/05/06(日) 22:39
Range型にRangeオブジェクト以外を設定したから、おかしかったのですね。
変数は二つ必要でした。
Select Caseの方が若干すっきりしますね!
Dim rng As Range
Dim s As String
Set rng = Cells(6, 1)
s = InputBox("Cells(6, 1)の値、フォント、行の高さ?")
Select Case s Case "値" MsgBox rng.Value Case "フォント" MsgBox rng.Font.Name Case "行の高さ" MsgBox rng.RowHeight Case Else MsgBox "値・フォント・行の高さのいずれかを入力"
End Select (hiro) 2018/05/07(月) 08:20
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.