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

タイトルの通りのことは不可能でしょうか?
例えばA1セルに「13日目の10時」とあったとします。その際に「13」の部分のみフォントの設定を変えるということをしたいのですが・・・。

A 回答 (5件)

>2.についても残念ながら固定ではありません。

ただ、こちらも90%くらいの割合で4つの漢字のどれかにはなります。

4つの漢字のどれかといういうのは、「難しい作業」というより、何%かの確率を予想し当てるというようなことにしか思えません。それには、十分なデータが必要です。1つの例では無理です。

以下は、ユーザーフォームで該当する部分をピックアップして、それでクリックなどして変更するサンプルです。

ユーザーフォームには、TextBox 1つと、ボタンが2つ、おまけに、ラベル1つ、つけると良いです。

'<シートモジュール>
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, _
                    Cancel As Boolean)
 Cancel = True
 With UserForm1
  .TextBox1.Value = Target.Value
  .Show 0 'モードレス
 End With
End Sub

'<ユーザーフォーム>
Private Tb1Text As String
Private Tb1ST As Long
Private Tb1SL As Long

Private Sub CommandButton1_Click()
 'フォント変更用
 With ActiveCell.Characters(Tb1ST, Tb1SL).Font
  .Name = "MS 明朝"
  .FontStyle = "太字"
 End With
End Sub

Private Sub CommandButton2_Click()
'フォントを戻す
 With ActiveCell.Font
  .Name = "MS ゴシック"
  .FontStyle = "標準"
 End With
End Sub
Private Sub TextBox1_MouseUp(ByVal Button As Integer, _
               ByVal Shift As Integer, _
               ByVal X As Single, _
               ByVal Y As Single)
 With TextBox1
  Tb1Text = .SelText
  Tb1ST = .SelStart
  Tb1SL = .SelLength
  ' Label1.Caption = Tb1Text 'ラベルで確認すると良い
 End With
End Sub
    • good
    • 0
この回答へのお礼

回答していただいたにもかかわらずお礼が遅くなり申し訳ありません。
やはり完全な自動化(?)は無理なようですね。
とりあえずマクロを組んでみてしばらく試してから手間と見やすさを両天秤にかけてみることにします。
ありがとうございました。

お礼日時:2005/05/24 13:30

こんばんは。

No.3です。
基本的にはNo.4のWendy02さんが仰る通りで,確率論としかいいようがなく,詳細な情報が必要となります。
こうなると,正確にマクロを組むということは不可能です。

ここから先はアドバイスです。

もしも,今回のご質問が,ご自分の手間を省くためのもので,一気に課題を片付けたいという要素であれば,とにかく,8割から9割をクリアするようにして,残りは目検でクリアするしか方法はありません。

If~Then~Else文やSelect Case文で条件を細かく設定し,条件にひとつも当てはまらなかったものは,別シートに値や番地を書き出すようなマクロを組むのが早いと思います。
もし,If~Then~Else文やSelect Case文などの条件分岐式が分からないのであれば,厳しい言い方かも知れませんが(あなたのVBAに対するレベルが分からないので),ご質問をクリアするのは相当厳しいと思います。(もしそうであれば,ヘルプや本を参照するなり,回答に対する補足で質問願います)

また,作られたフォームをユーザーに開放するような場合は,Wendy02さんの言うようなユーザーフォームを使う組み合わせが,マクロを使うやり方としてはベストと思います。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
今回の実際の使用目的はまさに仰るとおりのことなので、(If~Then~Else文やSelect Case文にかんしては少なくとも基本的なことは分かります)仰るようにプログラムを組んでから、例外を手で直す手間と見やすさと両天秤にかけてみたいと思います。

お礼日時:2005/05/24 13:34

こんにちは。

企業内でEXCELのマクロでプログラムを作っているものです。

結論から言うと可能は可能です。
基本的には
range("<セル番地>").Characters(Start:=<開始の文字カウント>, Length:=<開始かの文字カウントから何文字分>).Font.Name = "<フォント名>"
で変更可能です。
ご質問の場合だと,A1セルの1文字から2文字分のフォントを変えるわけですから(変えるフォントはMS明朝とします)

range("A1").Characters(Start:=1, Length:=2).Font.Name = "MS 明朝"


で変更されます。(WEBの関係で「MS」と「明朝」の間にスペースがありませんが,実際にはスペースが全角で1個入ります)

但し,これが使えるのは,「変更される文字の数が一定の場合」のみで,例えば「1日目」とか「100」日目みたいに,数字の部分が可変だと使えません。
回避することは可能ですが,その場合も「日目」が必ず入っていないとマクロ化ができなくなります。

そこで補足が欲しいのですが

1.数字の部分の文字数は一定ですか?
2.一定でない場合「日目」のように数字のあとに繋がる文字が固定されていますか?

この補足が頂けると,完全に近い回答が出来ると思います。

この回答への補足

早速の回答ありがとうございます。
1.については残念ながら一定ではありません。
一応、必ず1桁か2桁のどちらかではあるのですが・・・。(まれにある決まった漢字2文字の場合もあります。)
2.についても残念ながら固定ではありません。ただ、こちらも90%くらいの割合で4つの漢字のどれかにはなります。
どうやらものすごく難しい作業のようですね。
2.についてである程度対処できるならば4つの漢字以外が来た場合はその場合は無視して次のコードに進むような処理で構わないのですが・・・。

補足日時:2005/05/23 02:09
    • good
    • 0

Range("A1").Characters(Start:=a, Length:=b).Font.Size = c



として
a:セル内の変更したい文字の左からの数
b:セル内の変更したい文字数
c:フォントサイズ

なおSizeを
Name(フォント名)、FontStyle(スタイル)等いろいろ設定できます
    • good
    • 0

変更したい部分のみマウスで選択(反転)させて、替えたいフォントを、


していしたら、出来ませんか?

この回答への補足

早速の回答ありがとうございます。
が、申し訳ないですが、マクロのプログラムの一部として組み込みたいのでそれではダメなのです。

補足日時:2005/05/23 02:16
    • good
    • 0

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