[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『セルの値の書き換えじゃなくてセルの値を表示したい』(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.