プロが教えるわが家の防犯対策術!

元マクロ初心者(今はほとんど忘れています)です。

列幅、行の高さを変更するマクロを以前作りました。

セルに指定する列幅を入力するのですが、
最近100以上の値の時はスキップされることに気づきました。
100以上の値でも処理されるようにするにはどうすればよいでしょうか。


Sub 列幅変更マクロ()
'
' Macro1 Macro
' マクロ記録日 : 2004/1/31 ユーザー名 :
' 列幅の変更
' Keyboard Shortcut: Ctrl+l
'
If MsgBox("→:列幅を変更します。右の方向にセル内の数値に従って処理しています。一番右のセルに半角で「@」を終わりの印として入力してください。", vbOK) = 1 Then
Do Until ActiveCell.Value = "@"
If ActiveCell.Value < 100 Then
If ActiveCell.Value > 0 Then
Selection.ColumnWidth = ActiveCell.Value
End If
End If
ActiveCell.Offset(0, 1).Select
Loop
End If
End Sub
Sub 行の高さ変更マクロ()
'
' Macro2 Macro
' マクロ記録日 : 2004/2/1 ユーザー名 :
' 行の高さ変更
' Keyboard Shortcut: Ctrl+p
'
If MsgBox("↓:行の高さを変更します。下の方向にセル内の数値に従って処理しています。一番下のセルに半角で「@」を終わりの印として入力してください。", vbOK) = 1 Then
Do Until ActiveCell.Value = "@"
If ActiveCell.Value < 100 Then
If ActiveCell.Value > 0 Then
Selection.RowHeight = ActiveCell.Value
End If
End If
ActiveCell.Offset(1, 0).Select
Loop
End If
End Sub

A 回答 (4件)

おはようございます。



>我ながら質問が低レベルなことに気づいてショックを受けています。

使わなければ忘却の彼方、それは道理。
ショックを受けるほどのことではないのでは?!。。(^^;


で、入力規則。
---------------------------------------------
入力規制をするセル: A1~E1
入力を許可する値 :  10~200 と @

●A1~E1 をドラッグして選択

●メニューバーの「データ」 > 「入力規則」

(1)表示される入力規則ダイアログの上部の「設定」タブをクリック

表示される画面の
「入力値の種類」ボックスの▼をクリックして、「ユーザー設定」を選択
「数式」ボックスに、 =OR(And(A1>=10,A1<=200),a1="@")  と入力


(2)上部の「エラーメッセージ」タブをクリック(これはしなくてもよい)

入力規制にかかったときに表示するメッセージを入力

---------------------------------------------------------------------------

それから今回のは、数値範囲と文字(@)のチェックでしたので
数式がちょっと複雑になりましたが、単に数値範囲(10~200)であれば
「入力値の種類」ボックスで、「整数」を選択すると簡単にできます。
入力規則は入力値のチェックにとても便利ですので色々試してみてください。

以上です
    • good
    • 0
この回答へのお礼

いろいろと教えて戴いてありがとうございます。
入力規制は、是非使ってみたいワザです。

お礼日時:2006/04/14 22:21

再びこんにちは。



No2さんご指摘のとおりセル幅は255文字になってますし
折角最大文字のチェックもされてますので

If ActiveCell.value < 100 then
 を
If ActiveCell.value < 256 then

とした方がいいですね。

また、入力規則でもいいし、マクロでもいいし、
値の入力時にチェックするとより使いやすいものになりますね。

何れにしろ削除などと荒っぽいレス申し訳ありませぬ。(^^;;
以上です。

この回答への補足

No.1さん、No.2さん、さっそくの回答をありがとうございます。

我ながら質問が低レベルなことに気づいてショックを受けています。
If ActiveCell.Value < 100 Then
の100にも気づかないなんて。。

このマクロを書いたのはエクセル97の時ですが
そのときの制限が100だったということでしょうか。
現在はエクセル2003ですが、
試してみたら列幅は255、高さは408.75でした。
マクロの中の100の代わりにこれらの数を入れたらよいのでしょうか。

>また、入力規則でもいいし、マクロでもいいし、
値の入力時にチェックするとより使いやすいものになりますね。

入力規制について説明していただけないでしょうか。

再び、低レベルでごめんなさい。

マクロのことはすっかり忘れたgabo2gouより

補足日時:2006/04/08 17:53
    • good
    • 0

If ActiveCell.Value < 100 Then


が原因ですが、Excelの制限として、255までと
なっているようですね。
    • good
    • 0

こんにちは。



両方とも●のコードを削除してください。

----------------------------------------------

●If ActiveCell.Value < 100 Then

  If ActiveCell.Value > 0 Then
  Selection.ColumnWidth = ActiveCell.Value
  End If

●End If

---------------------------------------------

以上です。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!