質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

解決済

3回答

1428閲覧

VBA、InputBoxを使っての入力表示について

MSC

総合スコア6

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

1クリップ

投稿2021/09/27 14:05

編集2021/09/27 14:09

前提・実現したいこと

VBAで登録ボタンを作成し、動作としては
➀A1セルの空白セルを選択
➁受付番号、氏名、会社名、電話番号を左からInputBoxを使い入力し表を作成
その際にセルも移動させる
➂新規データを、その都度書き足していく

###質問
質問1,電話番号のデータ形式が、
➀Stringだと携帯電話の090xxxxxxxx(11ケタ)のうち、先頭の0を抜かした
数字しか入らない。例,90xxxxxxxx(10ケタ)と表示される

➁Longだと、オーバーフローになる

質問2,A1セルの空白セルの選択、横のセル(B→C→D)に入力できるが、入力中はセルが移動しない

該当のソースコード

Sub 新規データ登録ボタン()

Dim 受付番号 As String Dim 氏名 As String Dim 会社名 As String Dim 電話番号 As String 受付番号 = Application.InputBox("受付番号は(11桁で入力して下さい)", "受付番号") 氏名 = Application.InputBox("フルネーム カタカナで入力して下さい", "氏名") 会社名 = Application.InputBox("会社名を入力して下さい", "会社名") 電話番号 = Application.InputBox("電話番号を入力して下さい", "電話番号") With Cells(Rows.Count, 1).End(xlUp) .Offset(1, 0) = 受付番号 .Offset(1, 1) = 氏名 .Offset(1, 2) = 会社名 .Offset(1, 3) = 電話番号 End With

End Sub

VBA

補足情報

まだ実装してないですが
受付番号は11ケタの英数字
氏名はカナ
電話番号は12ケタ上限の数字のみ

お分かりの方いらっしゃいましたらどうか助言をお願いします

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

itagagaki

2021/09/27 15:09

質問2,A1セルの空白セルの選択、横のセル(B→C→D)に入力できるが、入力中はセルが移動しない ちょっと日本語の意味がわからないので、もう少し詳しく丁寧に書いてください。 先に質問1にだけ回答しておきます。
Kunihiro_Narita

2021/09/27 15:13

質問が単なる状況説明で、質問する文章になってないですね。
guest

回答3

0

ベストアンサー

質問1にだけ回答します。
電話番号のデータ型はStringでいいのですが、それをセルにセットしたとき、セルの書式がデフォルトの「標準」だと、数値とみなされて先行している0が消されます。

ですので電話番号をセットするセルのNumberFormatプロパティに予め"@"をセットしておく必要があります。

参考:VBA セルに表示形式を設定する

もう一つのやり方として、電話番号の頭に'を追加してセルにセットするという方法も、たぶん使えます。

投稿2021/09/27 15:20

itagagaki

総合スコア8402

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

MSC

2021/09/28 10:47

おっしゃる通りにした所、電話番号11桁が入力できました。 ありがとうございました。
guest

0

'///////<電話番号表記の件>//////////////
Sub 新規データ登録ボタン()
Dim 受付番号 As String
Dim 氏名 As String
Dim 会社名 As String
Dim 電話番号 As String
Dim 番号 As Long '文字数
再1:
受付番号 = Application.InputBox("受付番号は(11桁で入力して下さい)", "受付番号")
'受付番号の文字数をチックします
番号 = Len(受付番号)
If 番号 > 11 Or 番号 < 11 Then
MsgBox "文字数が違います"
GoTo 再1 '受付番号InputBox再表示します(再1:まで戻る)
End If
受付番号 = Application.InputBox("受付番号は(11桁で入力して下さい)", "受付番号")
氏名 = Application.InputBox("フルネーム カタカナで入力して下さい", "氏名")
会社名 = Application.InputBox("会社名を入力して下さい", "会社名")
電話番号 = Application.InputBox("電話番号を入力して下さい", "電話番号")
'D列 (数値)を文字列に設定します
*********
Columns(4).NumberFormatLocal = "@"
'********************************************
' 毎回A1セル選択***************
Range("A1").Select
'********************************************
With Cells(Rows.Count, 1).End(xlUp)
.Offset(1, 0) = 受付番号
.Offset(1, 1) = 氏名
.Offset(1, 2) = 会社名
.Offset(1, 3) = 電話番号
End With
End Sub

7//////////<セル移動の件、このことかな>///////
Sub データセル移動()
Dim 受付番号 As String
Dim 氏名 As String
Dim 会社名 As String
Dim 電話番号 As String
Dim 番号 As Long '文字数
Dim n As Long '最終行

n = Cells(Rows.Count, 1).End(xlUp).Row + 1
再1:
受付番号 = Application.InputBox("受付番号は(11桁で入力して下さい)", "受付番号")
'受付番号の文字数をチックします*****
番号 = Len(受付番号)
If 番号 > 11 Or 番号 < 11 Then
MsgBox "文字数が違います"
GoTo 再1 '受付番号InputBox再表示します(再1:まで戻る)
End If
'D列 (数値)を文字列に設定します**********
Columns(4).NumberFormatLocal = "@"
'*************************************
Cells(n, 1).Select
ActiveCell.Value = 受付番号
氏名 = Application.InputBox("フルネーム カタカナで入力して下さい", "氏名")
Cells(n, 2).Select
ActiveCell.Value = 氏名
会社名 = Application.InputBox("会社名を入力して下さい", "会社名")
Cells(n, 3).Select
ActiveCell.Value = 会社名
電話番号 = Application.InputBox("電話番号を入力して下さい", "電話番号")
Cells(n, 4).Select
ActiveCell.Value = 電話番号

End Sub

投稿2021/09/28 05:24

syousuke.33

総合スコア312

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

二番 ②も同じ話で、数値ではなく、文字列として扱えばいいです

まあ、別回答にもありますが、勝手に数値として扱われるってことがありますんで、文字列と明示的に扱いましょう

投稿2021/09/27 22:15

編集2021/09/28 01:01
y_waiwai

総合スコア88042

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

itagagaki

2021/09/28 00:39

質問2は A1セルの空白セルの選択、横のセル(B→C→D)に入力できるが、入力中はセルが移動しない と書かれているので違う話だと思いますが、意味がわかりません。
y_waiwai

2021/09/28 00:49

ああ、質問1の②、のはなしですね。 勘違いです
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問