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

EXCELのデータ、例えば[A01]、[A32]、[B30]という項目があり、これらを[A1]、[A32]、[B30]と表示、つまり[A01]を
[A1]と表示させる方法のご教示をお願いします。

私が考えた処理手順は、[A01]を、[A]と[0]と[1]を関数で切り
出し、2番目の位置に[0]がきた場合は[削除処理]をして、再び、
[A]と[1]を関数でくっつけて[A1]と表記させようと思います。

他にマクロの質問です。しばらくマクロから離れていたので教えて
ください。
Selection.Phonetics.Visible = True
とありますが、ひとつの構文でふたつのドットがあっても
よかったでしょうか。
ついでに日本語にするとどういう意味になるでしょうか。

A 回答 (4件)

こんばんは。



どうやら、私のことを、覚えていてくれましたね。ありがとうございます。

>マクロ人生も終焉を迎えたと思ったところだったのに。
>(たぶん、この意味は私しか知らないと思う)

うーん、意味は良く分かりませんが、

>一時はどうなることかと思いました。

というのは、こちらも同じようなものです。かなり、危ないところまで来ていました。やっと、目処が立ったけれども、まだ先は、まだ真っ暗というか、もともと、きちんと計画を立てていなかったことが原因で、自分で自分の器を小さくしてしまいました。

私のMSの製品に対する気持ちは、数年前は、「私の人生、MSに始まって、MSに終わるだろう。もう、VBAだけで、それ以上の言語などは覚えないだろう」と。

ところが、C言語に手を出してから、少し、違った世界が見えてきましたね。私たちは、MS製品に振り回されているのではないでしょうか。

>最近、みないと思ったのですが、どこにいるのですか?

つかの間の間だけです。今は、ここだけですが、それも、ここで書くことも、他で書くことも、そんなに長くありません。完全に、書き込み自体からは、撤退ということになりそうです。

最近、一旦、やめていたけれども、一部の質問の回答には、かなり問題があるように思い、それで再び書きました。書けばきりがありません。でも、本質的な問題は、解決しそうにありません。

コンピュータ界の問題は、これは、もう政治問題なのです。政治家にも、まだ善良な人もいますが、大半は、お金で動いているように思います。

ほとんどのユーザーは、昔と比べることも出来ないから、今の状態が、異常なのか正常なのか、さっぱり分かっていないように思います。私は、一応、英文を読むのが仕事ですから、特に、アメリカの民間のものは目に入ります。そういうのを読むにつけ、私たち、国民は、ウソとごまかしで、良いように丸められているような気がしてくるのです。報道もコントロールされ、国民は、搾取され続けているのに、なお、信じているのだから、おめでたいなって思います。

私が、仕事で初めてコンピュータをいじったころには、もう少し夢がありました。でも、いつのまにか、まったく違った方向に来てしまっています。

ところで、

 If StrComp(sText, "0", 1) = 0 Then '全角・半角の区別なし
      c.Value = Replace(c.Value, sText, "", 1, 1)
 End If
 
StrComp(sText, "0", 1)
Replace(c.Value, sText, "", 1, 1)

この閉じ括弧の手前の、「1」の意味が分かりますか?
TextCompare モードですから、全角、半角、関係ないのです。
「0」の全角があっても、半角があっても、処理するという意味です。
ワークシートのSubstitute では出来ません。
    • good
    • 0
この回答へのお礼

Wendy02さん、こんにちは。
StrComp関数から調べていって、理解できました。
高度なところには、入り込めていってません。
(私の性格からか、具体的な現象にぶつかってはじめて、”必要は発明の母”ごとく理解できるようになります。)

ご回答、ありがとうございます。

[後説]Wendy02さんのEXCELだけでなく各方面からの回答を読ませていただき、またまたその人となりを知りたくなりました。
たぶん、わたしだけではないと思います
>どうやら、私のことを、覚えていてくれましたね。
軽いQAから重いQAまで、親身にお答えいただき本当にありがたく思いました。

お礼日時:2008/08/19 13:46

こんにちは。



1.

=REPLACE(A1,2,MID(A1,2,1)="0","")

ただし、上記は半角のみです。

全角を含む場合は、
=REPLACE(A1,2,MID(ASC(A1),2,1)="0","")
となります。全角・半角、入り混じったものには出来ないこともあります。

マクロなら、

Sub Test1()
Dim sText As String
Dim c As Variant
  For Each c In Selection
    sText = Mid(c.Value, 2, 1)
    If StrComp(sText, "0", 1) = 0 Then '全角・半角の区別なし
      c.Value = Replace(c.Value, sText, "", 1, 1)
    End If
  Next c
End Sub

2.

Selection.Phonetics.Visible = True

コードの書法とか、分からないなら、分からないまま、まずコードを実行してみることから始まります。マクロやプログラムを覚えようとすなら、自分自身で、コンパイルし、実行してみることです。また、分からない部分は、カーソルを置いて、F1 で、ヘルプを調べてみる、そういう地道な作業から覚えます。
    • good
    • 0
この回答へのお礼

最近、みないと思ったのですが、どこにいるのですか?
REPLACE関数使うところなど、憎いですね。

私は、かなり人生のための精神も安定してきました。
一時はどうなることかと思いました。

マクロ人生も終焉を迎えたと思ったところだったのに。
(たぶん、この意味は私しか知らないと思う)

うーん、Wendy02さんは、いつもはどこにいるのですか?
もちろん、ネット世界での質問です。

お礼日時:2008/08/14 18:06

A1セルに文字列があるとき


 =IF(ISNUMBER(FIND("0",A1)),IF(MIN(FIND({"1","2","3","4","5","6","7","8","9"},A1&{"123456789"}))>FIND("0",A1),REPLACE(A1,FIND("0",A1),MIN(FIND({"1","2","3","4","5","6","7","8","9"},A1&{"123456789"}))-FIND("0",A1),),A1),A1)

FIND("0",A1) は最初に「0(全角)」が現れる位置
MIN(FIND({"1","2","3","4","5","6","7","8","9"},A1&{"123456789"})) は「1~9(全角)」が現れる位置です(ない場合はLen(A1)+1が返る)
その二つの数値は「0」の連続ですから、REPLACE関数で削除しています

>Selection.Phonetics.Visible = True
選択されているセル範囲の「フリガナ」を表示するのですね
>ひとつの構文でふたつのドットがあっても
意味が理解できません。ObjectがSelectionとPhoneticsの二つあるのですから、そのプロパティを表すにはドット「.」が二つないと表現できませんが、そういうことをお聞きですか?
いずれにせよ試せばわかることではないでしょうか
    • good
    • 0
この回答へのお礼

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

関数にしても・・・ちとハイレベルのような・・・

マクロは、

>ObjectがSelectionとPhoneticsの二つあるのですから、
>そのプロパティを表すにはドット

を知りたかったです。

ありがとうございました。

お礼日時:2008/08/14 18:11

後ろの2桁が数字であれば、関数


=LEFT(A1,1)&MID(A1,2,2)*1
とでか出来ると思います

VBAにすると
Sub Macro1()
ActiveCell.Value = Left(ActiveCell.Value, 1) & Mid(ActiveCell.Value, 2, 2) * 1
End Sub
になりますが?
    • good
    • 0
この回答へのお礼

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

私レベルでは、LEFT関数がいいかな?

VBAは腰をすえてみてみないと、まだ勘が取り戻せないです。

お礼日時:2008/08/14 18:08

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