下記のようなことがしたいのですが、
office系のソフトでできますか?

ボタンをクリックする度に、
指定した場所に、A→B→C…と繰り返し表示が変わっていく。

できるのであれば、どのような方法で作ればいいのか教えてください。
宜しくお願いいたします。

環境:Win XP

このQ&Aに関連する最新のQ&A

A 回答 (2件)

A1~A25に1から25までの数字を入力。


A26には0(ゼロ)を入力。
B1~B26にAからZまでのアルファベットを入力。
C2に =MOD(C1,26) を入力。
C3に =VLOOKUP(C2,A1:B26,2,FALSE) を入力。

ここで 表示→ツールバー→フォーム を選んで、
スピンボタンを適当な場所に作ります。
そのスピンボタンを右クリック→コントロールの書式設定→コントロールタブで、
最小値1、最大値10000(適当)、変化の増分1、リンクするセル$C$1 としてください。

これでスピンボタンをクリックするたびにC1が1ずつ増えて行き、C3のアルファベットがA~Zでループします。
ボタンを10000回クリックすれば止まりますが。
    • good
    • 0
この回答へのお礼

すばらしいです、できました!!
ありがとうございます!!

お礼日時:2005/04/15 13:25

タイトルでも、曖昧な書き方になっていますが、Office系のソフトっていうのは、Excelで良いのですね。

もし、違う場合でも、Range("A1")の部分を書き換えれば、何とか利用できるはずです。

シートモジュールか、標準モジュールに貼り付けて、ボタンに設定すれば出来るはずです。以下は、A~Zですが、その部分をご自由に書き換えが可能です。

Sub Loop_String1()
 Dim myStr As String
 Dim myRng As Range
 Dim num As Integer
 '=ABC・・・を、お好きな順序で書き換えてください。
 Const myStrings As String = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
 'A1 の中を、指定してください。
 Set myRng = Range("A1")
 num = Len(myStrings)
 myStr = myRng.Value
 If myStr Like "[A-Z]" Then
  myRng.Value = Mid$(myStrings, (InStr(myStrings, myStr) Mod num) + 1, 1)
  Else
  myRng.Value = Mid$(myStrings, 1, 1)
 End If
 Set myRng = Nothing
End Sub

なお、ワークシート関数で考えると、その文字の位置を取得するのは、FIND関数です。それに、MOD(文字位置,26)+1 で、次の文字を、MID関数で出せばよいのですから、

=MID("ABCDEFGHIJKLMNOPQRSTUVWXYZ",MOD(FIND(A1,"ABCDEFGHIJKLMNOPQRSTUVWXYZ"),26)+1,1)

ということになりますから、文字列を取得して、書き換えるだけのマクロでも可能です。
    • good
    • 0
この回答へのお礼

・・・私には少し難しいご回答でしたが、
じっくりこのとおりやってみます!
ありがとうございました!

お礼日時:2005/04/15 13:26

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


人気Q&Aランキング