Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


339 / 3841 ページ ←次へ | 前へ→

【75642】エクセルを別窓で開いて表示
質問  こたろう  - 14/6/4(水) 10:52 -

引用なし
パスワード
   同じフォルダ内にabc.xlsm,def.xlsm
ファイルがあり
abc.xlsmから
違うエクセルを開いて
そこで
def.xlsm
を操作したいのですが

基本的に新しくエクセルを開く方法を教えてください
簡単なことで済みませんが・・・
・ツリー全体表示

【75641】Re:オートシェイプの貼付け
発言  γ  - 14/6/3(火) 20:03 -

引用なし
パスワード
   ▼OVL さん:
>下記にあります。説明もあります。
すみませんが、それだと記録に残りません。
手数ですが、こちらの掲示板で完結するように、
ここで説明してください。
・ツリー全体表示

【75640】オートシェイプの貼付け
質問  OVL  - 14/6/3(火) 20:01 -

引用なし
パスワード
   オートシェイプの貼付けを自動でしたいのですが、
見ていただけないでしょうか?

下記にあります。説明もあります。

宜しくお願い致します。

fast-uploader.com/file/6957348837472/
・ツリー全体表示

【75639】Re:screenupdating の現在の状態を取得
お礼  MK9RE  - 14/6/3(火) 11:58 -

引用なし
パスワード
   ▼bant さん:
>Debug.Print Application.ScreenUpdating
>そのまま取得できます。

ありがとうございました。
そのまま、使えば良かったんですね
・ツリー全体表示

【75638】Re:screenupdating の現在の状態を取得
回答  bant  - 14/6/3(火) 10:48 -

引用なし
パスワード
   Debug.Print Application.ScreenUpdating
そのまま取得できます。
・ツリー全体表示

【75637】screenupdating の現在の状態を取得
質問  MK9RE  - 14/6/3(火) 10:01 -

引用なし
パスワード
   こんにちは

タイトル通りですが、screenupdatingが現在、trueかfalseかを調べることはできないでしょうか。


なぜ、そんなことをするかと言いますと、

同じfunction を複数の場所から呼び出すのですが、
functionの実行中は、表示の更新をとめて、
値を返すときに、表示更新の状態を元に戻したいのです。

screenupdating に .value とか付けてみたのですけど、駄目でした。


親ルーチンで処理すれば良いのですが、
functionの中で処理できれば、簡潔になるかなぁ、と思った次第です。

よろしくお願いいたします
・ツリー全体表示

【75636】Re:追加したテキストボックスをアクティ...
回答  ドカ  - 14/5/30(金) 21:10 -

引用なし
パスワード
   こんな感じでアクティブにできることが分かったので、
解決とします。

  ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, 100, 10, 70, 300).Select

  With Selection
      .Characters.Text = Text1
  End With
  
・ツリー全体表示

【75635】Re:ColorIndexと同じ色をRGBで表には
お礼  ドカ  - 14/5/30(金) 19:09 -

引用なし
パスワード
   ▼kanabun さん 回答ありがとうございます。
おかげさまで目的が達成できました。
・ツリー全体表示

【75634】追加したテキストボックスをアクティブに...
質問  ドカ  - 14/5/30(金) 19:06 -

引用なし
パスワード
   下記コードでテキストボックスを追加します。
そして、そのテキストボックスをアクティブな状態にしたいのですが、
どうすればよいのか教えてください。


  With ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, 100, 10, 70, 300)
      .TextFrame.Characters.Text = Text1

   End With
・ツリー全体表示

【75633】Re:ColorIndexと同じ色をRGBで表には
発言  kanabun  - 14/5/30(金) 10:13 -

引用なし
パスワード
   もうひとつおまけで...

VBAには組み込みの色定数がありますね

Sub testSheet3()
  Dim a, e, i&
  a = Array(vbRed, vbBlue, vbGreen, vbCyan, _
     vbMagenta, vbYellow, vbWhite, vbBlack) '組み込み色定数
  For Each e In a
    i = i + 1
    Cells(i, 1).Interior.Color = e
    Cells(i, 2).Value = "'" & Right$( _
     "0000000" & Hex$(Cells(i, 1).Interior.Color), 8)
  Next
End Sub
・ツリー全体表示

【75632】Re:ColorIndexと同じ色をRGBで表には
発言  kanabun  - 14/5/30(金) 9:53 -

引用なし
パスワード
   ColorIndex と Color には 対応表はありません。
ColorIndex とは 56色のカラーパレットのIndex のことで
あるIndexに どの色を割り当てるかは ユーザーがカスタマイズ
できます。
ただ、現在のカラーパレットの、たとえば1番(ColorIndex=1) が
どんな色をしているかは
 WorkbookオブジェクトのColorsプロパティで取得できます。

(参考)
色パレットに登録されている色を調べる
ht tp://officetanaka.net/excel/vba/tips/tips146.htm
・ツリー全体表示

【75631】Re:ColorIndexと同じ色をRGBで表には
発言  kanabun  - 14/5/30(金) 9:41 -

引用なし
パスワード
   ▼ドカ さん:こんにちは〜

>対応表などあるのでしょうか?

ヒントです。

新規Bookを作成し、まずSheet1 でテストです。

'準備 : [A1]より下のセルを10個程度 色塗りしておきます

Sub testSheet1()
  Const 行数 = 10
  Dim a(1 To 行数, 1 To 2)
  Dim c As Range
  Dim i&
  For Each c In Range("A1:A" & 行数)
    i = i + 1
    a(i, 1) = c.Interior.ColorIndex
    a(i, 2) = "'" & Right$( _
       "0000000" & Hex$(c.Interior.Color), 8)
  Next
  [B1].Resize(行数, 2).Value = a
End Sub
実行すると、B列とC列にこんなようなデータが出力されます:
 B列   C列
6    0000FFFF
43    0000CC99
33    00FFCC00
40    0099CCFF
44    0000CCFF
38    00CC99FF
3    000000FF
9    00000080
1    00000000
15    00C0C0C0

これは、コードを見て分かるように、A列のColorIndex と Color を
となりのセルに表示したものです。
意味は たとえば 2行目 [A2]のColorIndex は 43 で その Color値は
&H0000CC99 であるということです。
&H0000CC99 は 右から(お尻から)1バイトずつとりだすと RGB値に
なります。 R=99 G=CC B=00 (16進表記) です。

Colorが &h00CC99FF なら R=FF, G=99, B=CC ということです。


もうひとつ、こんどは Sheet2 で実験です。
(こんどは 前準備は要りません)

Sub testSheet2()
  Dim i&, y&
  For i = 0 To 15
    y = i + 1
    Cells(y, 1).Interior.Color = QBColor(i)
    Cells(y, 2).Value = i
    Cells(y, 3).Value = "'" & Right$( _
     "0000000" & Hex$(Cells(y, 1).Interior.Color), 8)
  Next
End Sub
これを実行しますと A列が16セル塗りつぶされ、
B列    C列
0    00000000
1    00800000
2    00008000
3    00808000
4    00000080
5    00800080
6    00008080
7    00C0C0C0
8    00808080
9    00FF0000
10    0000FF00
11    00FFFF00
12    000000FF
13    00FF00FF
14    0000FFFF
15    00FFFFFF

のような出力が得られます。
このB列が QBColor()関数で、C列は例によってA列の色をColorプロパティで
取得し、それを16進表記したものです。
たとえば Yellow のQBColor番号 は 14 で そのColorは &h0000FFFF ですから、
RGB値は R=FF, G=FF, B=00 ということになります。
・ツリー全体表示

【75630】ColorIndexと同じ色をRGBで表には
質問  ドカ  - 14/5/30(金) 5:53 -

引用なし
パスワード
   グラフのマーカーの色を変えるときには、ColorIndex = 1とかColorIndex = 2
などとして、色を指定します。

一方、文字の色を変えるときには、Color=RGB(255, 0, 0)として色の指定をします。

ColorIndexの数字の色と同じ色を表すRGBの数字はどうなるのでしょうか?

ColorIndex = 1 → RGB(?,?,?)
ColorIndex = 2 → RGB(?,?,?)
ColorIndex = 3 → RGB(?,?,?)
以下同様に続く

対応表などあるのでしょうか?
それとも自分で一生懸命探さなければならないのでしょうか?
・ツリー全体表示

【75629】Re:テキストボックスの文字の色を変えたい
お礼  ドカ  - 14/5/29(木) 22:03 -

引用なし
パスワード
   ▼γ さん 回答ありがとうございます。

ご提示頂いたコードでうまくいきました。
・ツリー全体表示

【75628】Re:テキストボックスの文字の色を変えたい
発言  γ  - 14/5/29(木) 21:08 -

引用なし
パスワード
   参考例です。

現在選択されているテキストボックスを相手に作業します。

Sub test()
  Dim s As String
  Dim ary
  Dim myColor
  Dim p As Long, k As Long

  myColor = Array(RGB(255, 0, 0), RGB(0, 112, 192), RGB(0, 176, 80))

  With Selection.ShapeRange(1).TextFrame2.TextRange
    s = .Text
    ary = Split(s, vbLf)
    p = 1
    For k = 0 To UBound(ary)
      If Len(ary(k)) > 0 Then
        .Characters(p, 1).Font.Fill.ForeColor.RGB = myColor(k Mod 3)
        p = p + Len(ary(k)) + 1
      End If
    Next
  End With

End Sub
・ツリー全体表示

【75627】テキストボックスの文字の色を変えたい
質問  ドカ  - 14/5/29(木) 20:34 -

引用なし
パスワード
   エクセルのシートにテキストボックスがあります。
テキストボックスには、文字が書かれています。

A123
B4444
C55224785




この文字のうち、各行の先頭の1文字目のみ色を変えたいです。
2文字目以降の色は変えません。

色は、赤、青、黄、紫・・・・と適当で良いです。

マクロ実行後
Aは赤
Bは青
Cは黄
という風に変えたいです。

数字の部分の色は変えず、最初のままです。

お分かりの方みえましたら、教えていただけますようお願いします。
・ツリー全体表示

【75625】Re:文字置換したいのですが。。。
お礼  (・∀・)  - 14/5/28(水) 13:32 -

引用なし
パスワード
   YUTOさんYUKIさん
ありがとうございます!!!
出来ました!!!
今後ともお願いいたします!!!
・ツリー全体表示

【75624】Re:ListBoxのデータを編集したい
発言  γ  - 14/5/27(火) 22:01 -

引用なし
パスワード
   ListIndexをご存じのようですから、
例えば、
ht tp://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/vba_userform03.html
などを参考にしてはどうでしょうか。
取り出したときのListIndexの値を、変数またはシートに保存しておいて、
修正後に、もういちどそれをもとに書き換えれば良いと思います。

# インデントもついておらず、読み解く意欲がわきません。
# 必要なものだけ提示してはどうでしょうか。
・ツリー全体表示

【75623】Re:カスタマイズしたメニューバーのアイ...
発言  γ  - 14/5/27(火) 21:59 -

引用なし
パスワード
   失礼しました。
こちらは禁止ではないが、禁止しているサイトとのマルチはだめでした。
先方が禁止なので、この場合 NGです。
いずれにしても、簡単な挨拶くらいするのが礼儀だとおもいました。

あちらでご指摘をいただきました。ありがとうございます。
・ツリー全体表示

【75622】Re:文字置換したいのですが。。。
発言  yuto  - 14/5/27(火) 21:22 -

引用なし
パスワード
   ▼(´・д・`) さん:

既に、Yukiさんの方から適切な例が提示されていますが...
参考までに記述しておきます。

> rpl = Replace(rpl, "す", "あ")

上記の式は、左辺へ置換した結果を代入するという記述になります。

表示したい部分を左辺へ明示する必要があるので、
rplという変数の中身を置き換えるという動きになっていました。

B列の文字を置き換えた結果をC列に表示するという場合は以下の様に
記述することができます。

 Cells(i, 3).Value = Replace(Cells(i, 2).Value, "す", "あ")

B列の中身を置き換える例は、すでに提示していただいているので
割愛します。
・ツリー全体表示

339 / 3841 ページ ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free