ここから本文です

エクセルで請求書を作成しておりますが、先方の請求書フォームが少し面倒くさいつ...

アバター

ID非公開さん

2019/2/1717:46:58

エクセルで請求書を作成しておりますが、先方の請求書フォームが少し面倒くさいつくりになっておりまして何か良い方法があったら教えてください。

先方フォーマット A1A2A3A4A5A6A7
例:300万と入力した場合 3 0 0 0 0 0 0 とセルに1ケタずつ入力しなくてはなりません。

こんな方法は出来ませんか?
余白などに3000000と入力して
A1に百の位の3 A2に十の位の0 A3に千の位の0 A4の百の位の0と各セルに一ケタずつ振り分けできないでしょうか?
良い方法がありましたらおねがい致します。

閲覧数:
37
回答数:
2
お礼:
500枚

違反報告

ベストアンサーに選ばれた回答

epe********さん

2019/2/1718:57:59

A1のセルに3000000と入力したとして、

B1のセルに百万の桁を振り分けるのであればB1のセルに=MID($A$1,COLUMN(A1),1)

C1のセルに十万の桁を振り分けるのであればC1のセルに
=MID($A$1,COLUMN(B1),1)

D1のセルに1万の桁を振り分けるのであればD1のセルに
=MID($A$1,COLUMN(C1),1)

C1以降はオートフィルで入力できると思います。

アバター

質問した人からのコメント

2019/2/17 20:13:10

出来ました!
凄く助かりました
ありがとうございました。
これを元に展開していきたいと思います。

ベストアンサー以外の回答

1〜1件/1件中

ina********さん

2019/2/1719:04:56

>セルに1ケタずつ入力しなくてはなりません。

例えば、1の位がH列だとして、H列に入力するとそれを
左側のセルに展開する、という感じで良いのでしょうか。

よろしければ、以下のコードを対象のシートモジュール
へコピペしてみてください。

(桁数オーバーには対応していません。)


Private Sub Worksheet_Change(ByVal Target As Range)
    Dim SS As String, S As String
    Dim N As Long, i As Long
    
    With Target
        If .Count > 1 Then Exit Sub
        If .Column <> 8 Then Exit Sub
        SS = .Value
        N = Len(SS)
        
        Application.EnableEvents = False
        
        For i = 1 To N
            S = Mid(SS, i, 1)
            .Offset(, -N + i).Value = S
        Next
        
        Application.EnableEvents = True
    End With
End Sub

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる