アプリ版:「スタンプのみでお礼する」機能のリリースについて

エクセル2007を使用しております。

A1のセルに入力できる文字数を10文字に制限し、11文字目はD1のセルに出力
そしてD1のセルも入力文字数を10文字に制限し、D1セルの11文字目以降はH1のセルに出力…

というコードを、どなたか教えていただけないでしょうか。

勉強不足で申し訳ありませんが、近しいサイトは見つけたのですが、マッチする内容の検索がしきれず、急を要するためお力を貸していただけましたら幸いです。

どうぞよろしくお願いいたします。

A 回答 (2件)

セルに入力できる文字数を10文字に制限するという発想ではなくて、


セルA1のに入力された文字を、10個単位の文字列に分割し、
所定のセルに分割した文字列を転記するマクロ構文を書きます。
(11個目以降は、4列ごとに転記するものとしました。)

AA=Cells(1,1).value
A=Len(AA)
B=Application.WorksheetFunction.Roundup(AA/10,0)
Cells(1,1)=Left(AA,10)
AA=Right(AA,Len(AA)-10)
For C=1 To B-1
Cells(4*C,1)=Left(AA,10)
AA=Right(AA,Len(AA)-10)
Next C
    • good
    • 1
この回答へのお礼

早々のご回答ありがとうございます。

エラーが出てしまって、うまく動作しないのですが
引き続きトライしてみます。

また何かありました際はアドバイスいただけましたら幸いです。

お礼日時:2013/05/24 17:21

こんにちは!


一例です。

入力する列はA列とします。

>D1セルの11文字目以降はH1のセルに・・・
とありますが、列方向に関しては規則性がないみたいですね!

シートモジュールです。

Private Sub Worksheet_Change(ByVal Target As Range)
Dim tmp As String
If Application.Intersect(Target, Range("A:A")) Is Nothing Or Target.Count <> 1 Then Exit Sub
Application.EnableEvents = False
tmp = Target
With Target
.Value = Left(tmp, 10)
.Offset(, 3) = Mid(tmp, 11, 10)
.Offset(, 7) = Mid(tmp, 21, 10)
End With
Application.EnableEvents = True
End Sub

※ A列は「文字列」とします。
※ H列までのコードですので、31文字以上は別途コードを追加してやる必要があります。
これでA列に文字列を入力してみてください。m(_ _)m
    • good
    • 0
この回答へのお礼

早々のご回答ありがとうございます。

31文字以上ありましたので、別途コードを追加して
理想のフォーマットを作成することができました!
かなり悩んでいたので本当に助かりました!
重ねてありがとうございますm(_ _)m

お礼日時:2013/05/24 17:24

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