元マクロ初心者(今はほとんど忘れています)です。
列幅、行の高さを変更するマクロを以前作りました。
セルに指定する列幅を入力するのですが、
最近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
No.4ベストアンサー
- 回答日時:
おはようございます。
>我ながら質問が低レベルなことに気づいてショックを受けています。
使わなければ忘却の彼方、それは道理。
ショックを受けるほどのことではないのでは?!。。(^^;
で、入力規則。
---------------------------------------------
入力規制をするセル: A1~E1
入力を許可する値 : 10~200 と @
●A1~E1 をドラッグして選択
●メニューバーの「データ」 > 「入力規則」
(1)表示される入力規則ダイアログの上部の「設定」タブをクリック
表示される画面の
「入力値の種類」ボックスの▼をクリックして、「ユーザー設定」を選択
「数式」ボックスに、 =OR(And(A1>=10,A1<=200),a1="@") と入力
(2)上部の「エラーメッセージ」タブをクリック(これはしなくてもよい)
入力規制にかかったときに表示するメッセージを入力
---------------------------------------------------------------------------
それから今回のは、数値範囲と文字(@)のチェックでしたので
数式がちょっと複雑になりましたが、単に数値範囲(10~200)であれば
「入力値の種類」ボックスで、「整数」を選択すると簡単にできます。
入力規則は入力値のチェックにとても便利ですので色々試してみてください。
以上です
No.3
- 回答日時:
再びこんにちは。
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より
No.1
- 回答日時:
こんにちは。
両方とも●のコードを削除してください。
----------------------------------------------
●If ActiveCell.Value < 100 Then
If ActiveCell.Value > 0 Then
Selection.ColumnWidth = ActiveCell.Value
End If
●End If
---------------------------------------------
以上です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Visual Basic(VBA) excel2021で実行できないマクロ。どこを直したらいいのか 2 2022/03/28 03:40
- Visual Basic(VBA) VBAでoutlook365が起動しません。 4 2022/08/25 13:31
- Visual Basic(VBA) VBAが止まります。 3 2022/08/31 14:09
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) VBAで日付入力しているのですが 4 2023/03/02 11:25
- Visual Basic(VBA) マクロ実行時、自動で背景色を変えたい。 C列にあるチェックボックスをチェックするとB列に「TRUE」 4 2022/11/08 11:14
- Excel(エクセル) エクセルでの左のセルのコピー 3 2022/07/25 12:31
- Visual Basic(VBA) まとめシートから集計シートへA列のコードが一致したら1行コピーするマクロをネット上で見つけました。こ 1 2022/08/30 14:11
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【エクセル】関数で「A1が0でな...
-
エクセル逆三角マークで選択項...
-
EXCEL:入力規則の「リスト」は...
-
Excelで同じセルに入力し エン...
-
【Excel】ドロップダウンリスト...
-
入力規則をブック全体にかける...
-
エクセルでセルにポインタする...
-
エクセルでセルのコメントが消...
-
エクセルVBA ブックを閉じる前...
-
エクセルの入力規則で作ったリ...
-
シートを保護しても入力規則を...
-
カンマで区切った数値をCOU...
-
Excel 一番右のセルを参照する
-
Excel ある条件での入力禁止
-
エクセルのセルの手入力を禁止。
-
エクセルで、入力制限(プルダ...
-
VGAを利用した画像表示について
-
Excel 自動的に半角英数になり...
-
エクセル 入力規則のリストボ...
-
入力モードが勝手に切り替わる
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【エクセル】関数で「A1が0でな...
-
エクセル逆三角マークで選択項...
-
エクセルでセルにポインタする...
-
シートを保護しても入力規則を...
-
エクセルVBA ブックを閉じる前...
-
【Excel】ドロップダウンリスト...
-
エクセルでセルのコメントが消...
-
エクセル 入力規則のリストボ...
-
Excel 集計表
-
入力規則の入力時メッセージの...
-
エクセルの入力規則で作ったリ...
-
エクセルVBA ユーザーフォーム...
-
ドロップダウンリスト(INDIREC...
-
Excel 自動的に半角英数になり...
-
カンマで区切った数値をCOU...
-
エクセルで、入力制限(プルダ...
-
Excelで同じセルに入力し エン...
-
Excelでセルに名前を定義したい...
-
エクセルで。
-
エクセルのセルの手入力を禁止。
おすすめ情報