Excel VBA質問箱 IV

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

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


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

【79584】Re:InputBoxのDefaultでの状態
お礼  よう  - 18/1/24(水) 11:46 -

引用なし
パスワード
   返信ありがとうございます
了解しました
・ツリー全体表示

【79583】Re:InputBoxのDefaultでの状態
回答  γ  - 18/1/23(火) 23:41 -

引用なし
パスワード
   たぶんできないと思います。
入力待ちの状態はマクロの動作を受け付けません。
簡易入力用ですから、細かい動作は望めないでしょう。
どうしてもということなら、ユーザーフォームで作って下さい。
・ツリー全体表示

【79582】InputBoxのDefaultでの状態
質問  よう  - 18/1/23(火) 10:38 -

引用なし
パスワード
   InputBoxでDefaultを設定すると初期値が表示されますが、文字を選択している状態になるかと思います。
それを選択してない状態で表示させるようにはどうしたらいいでしょうか?
・ツリー全体表示

【79581】Re:outlookメールにセル貼り付け
発言  γ  - 18/1/18(木) 6:37 -

引用なし
パスワード
   補足:
wdStoryは定数です。
Wordの Object Libraryを参照設定してください。
・ツリー全体表示

【79580】Re:outlookメールにセル貼り付け
回答  γ  - 18/1/18(木) 6:35 -

引用なし
パスワード
   それはWordのマクロですから、Wordにもマクロ自動記録が利用可能ですから、
マクロ記録などが参考になるはずです。トライしてみて下さい。

(1)
M.body = "テストです" 'メールの本文
を活かすなら、分の最後までジャンプしてから貼り付けることが可能。
    .WordEditor.Windows(1).Selection.Move Unit:=wdStory
    .WordEditor.Windows(1).Selection.Paste

(2)
M.body = "テストです"
とせずに、まとめて文字列等をセットすることもできるでしょう。
    .WordEditor.Windows(1).Selection.TypeText Text:="テストです"
    .WordEditor.Windows(1).Selection.TypeParagraph
    .WordEditor.Windows(1).Selection.Paste

(3)逐一.TypeParagraphせずに、
    .WordEditor.Windows(1).Selection.TypeText Text:="456" & vbLf
  という書き方も可能ですね。

なお、上記は、With句を使って整理することができますので、工夫してください。

# 結果のコードだけを書かないのは、内容理解が重要と考えているからです。
# ひとつひとつの部品を理解するようにしてください。
・ツリー全体表示

【79579】Re:組み込み定数について
お礼  Excel2003使用者  - 18/1/16(火) 20:31 -

引用なし
パスワード
   >Public Sub Set系列Line(myChart As Chart, 系列 As Long, LineStyl As Excel.XlLineStyle, 色 As Long, 太さ As Excel.XlBorderWeight, MarkerStyl As Excel.XlMarkerStyle)

これでもOKですか。参考にします。
w101709x さん、ありがとうございます。
・ツリー全体表示

【79578】outlookメールにセル貼り付け
質問  excel2016  - 18/1/16(火) 13:09 -

引用なし
パスワード
   メール本文
------------------

文章1

表(貼り付け)

文章2

という単純な文章を作りたいのですがなかなか上手く行きません。


下記のソースを利用すると

Sub macro()
  Dim Ap As Object
  Dim M As Object
  'Excelで選択しているものをコピー(図でも表でもOKです)
  Selection.Copy
  Set Ap = CreateObject("Outlook.Application")
  Set M = Ap.CreateItem(0)
    M.BodyFormat = 3 'リッチテキスト形式
    M.Body = "テストです" 'メールの本文
    M.To = "test @ test" 'アドレス
    M.Subject = "テスト" '件名
    M.Display '画面を表示
    With Ap.ActiveInspector
      '貼り付け
      .WordEditor.Windows(1).Selection.Paste
    End With
End Sub
---------------------------------------------------
メール本文
------------------
表(貼り付け)


文章


となってしまいます。


ーーーーーーーーーーーーーーーーー

Dim str1 As String
Dim str2 As String
Dim str3 As String

と変数を用意して

xxx.body = str1 & str2 & str3


としようとしたのですが変数に
Range(A1:B9).text
のような複数セルの値が入らず困っています。

どなたかご教授願えないでしょうか。
・ツリー全体表示

【79577】Re:組み込み定数について
発言  w101709x  - 18/1/16(火) 5:00 -

引用なし
パスワード
   そのまま

Public Sub Set系列Line(myChart As Chart, 系列 As Long, LineStyl As Excel.XlLineStyle, 色 As Long, 太さ As Excel.XlBorderWeight, MarkerStyl As Excel.XlMarkerStyle)

と使える気がしますが。
・ツリー全体表示

【79576】Re:不規則な範囲の合計を求めたい
発言  γ  - 18/1/15(月) 18:10 -

引用なし
パスワード
   こちらはVBAの質問掲示板です.
関数は別の場所で質問してください。
・ツリー全体表示

【79575】不規則な範囲の合計を求めたい
質問  かりん  - 18/1/15(月) 17:51 -

引用なし
パスワード
   初めまして、お力をお借りしたく投稿させて頂きます。

ファイルの構成は下記の通りです。

●シート1:各コードごとの手数料合計を求めたい表

B6セルに集計の元になるコードが入力されており
H6〜H9にそのコードに該当する手数料が入力されています。
コードごとに範囲が異なっており、月によっても変動します。

   A    B  C  D  E  F  G  H
1    
2
3
4
5 名称 コード             手数料
6  a   111             1,000
7                    1,000
8                    1,000
9                    1,000
10  b   112             2,000
11                    2,000
12  c   113             3,000
13                    3,000
14                    3,000
15                    3,000

●シート2:シート1の手数料の一覧表

    A     B
1 コード  手数料    
2   111   4,000
3   112   4,000
4   113  12,000
5 
6
7
8
9
10


上記のシート1のコードごとで不規則に範囲が変動する手数料の合計を
シート2で関数を使ってまとめたいと考えていたのですが
コードはVLOOKUPで参照できるとしても
SUM関数の範囲を可変にする方法が思いつきません。
関数については勉強中ですが業務に関わることだったので
あまり時間が掛けられないため、こちらに投稿させて頂きました。
アドバイスなど頂けたらありがたいです。
どうか、宜しくお願い致します。
・ツリー全体表示

【79574】Re:組み込み定数について
お礼  Excel2003使用者  - 18/1/14(日) 22:18 -

引用なし
パスワード
   γさん、回答ありがとうございます。
今までオブジェクトブラウザはちらっと目に入るくらいで、
しっかり見て活用していませんでした。

オブジェクトブラウザで 
Excel.XlBorderWeightクラス のメンバにxlHairline
を見つけました。

イミディエイトウインドウで
?TypeName(xlHairline)
でLongを確認しました。

これからはオブジェクトブラウザの活用、TypeNameの活用を心がけます。

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



・ツリー全体表示

【79573】Re:組み込み定数について
回答  γ  - 18/1/14(日) 18:54 -

引用なし
パスワード
   (1)オブジェクトブラウザで 例えば xlHairlineを検索してみてください。
Excel.XlBorderWeight のメンバ とあり、他のメンバーの値も分かります。
Longでいいだろうと推測がつきます。

(2)またイミディエイトウインドウで
?TypeName(xlHairline)
とすると、
Long
と返ってきます。

結論:
オブジェクトブラウザの活用、TypeNameの活用などをトライしてみて下さい。
・ツリー全体表示

【79572】組み込み定数について
質問  Excel2003使用者  - 18/1/14(日) 11:13 -

引用なし
パスワード
   組み込み定数をプロージャに渡す場合、下記のように、
変数の宣言は無指定つまりVarientで使用してますが、
これでよいのでしょうか?

Public Sub Set系列Line(myChart As Chart, 系列 As Long, LineStyl, 色 As Long, 太さ, MarkerStyl)
  With myChart.SeriesCollection(系列)
    .Smooth = True
    .Border.ColorIndex = 色     '紺11/白2
    .Border.Weight = 太さ      '線の太さ'xlHairline
    .Border.LineStyle = LineStyl  '線表示'xlContinuous
    .MarkerStyle = MarkerStyl    'xlNone
  End With
End Sub

組み込み定数をネットで調べたら

組み込み定数は「vbYesNo」や「vbOK」など頭の文字が「vb」から始まるものと、
「xlLeft」などxlから始まるものの2種類があります。

この違いは、ExcelのVBA内で用意されているものは「xl」から始まり、
Visual Basicで用意されているものは「vb」から始まります。
このようにそれぞれ用意されている場所が異なります。

とありましたが、変数の宣言については、見つけられなかったので質問しました。
・ツリー全体表示

【79571】Re:ifのネストを浅くしたい
お礼  なー  - 18/1/13(土) 0:08 -

引用なし
パスワード
   なるほど!
不等号の向きを逆にして条件式の位置を変えてあげれば
一つ目のCaseがTrueの際、後がスルーされるみたいなことを回避できますね!
なんというかすごくしっくり来ました。
休み明けに実データで試してみようと思います。
ご回答ありがとうございました。
・ツリー全体表示

【79570】Re:ifのネストを浅くしたい
回答  γ  - 18/1/12(金) 23:21 -

引用なし
パスワード
   色々な書き方があると思いますが、一例です。(テスト未済。)

Sub ChangeColor()
  Dim rng1 As Range
  Dim rng2 As Range
  Dim rng3 As Range
  Set rng1 = Range("A1")
  Set rng2 = Range("B1")
  Set rng3 = Range("C1")

  Select Case Time
    Case Is <= CDate("10:00")
    Case Is <= CDate("11:00")
      If rng1.Value Like "*○○*" And rng2.Value Like "*い*" Then
        rng1.Interior.ColorIndex = 3
      End If
    Case Is <= CDate("12:00")
      If rng1.Value Like "*△△*" And rng3.Value Like "*う*" Then
        rng1.Interior.ColorIndex = 4
      End If
    Case Is <= CDate("13:00")
      If rng1.Value Like "*□□*" And rng3.Value Like "*う*" Then
        rng1.Interior.ColorIndex = 5
      End If
    '以下同様につき省略
  End Select
End Sub
・ツリー全体表示

【79569】ifのネストを浅くしたい
質問  なー  - 18/1/12(金) 22:59 -

引用なし
パスワード
   こんにちは
現在、条件によってセルの背景色を変えるマクロを作成しています。
その条件というのが、10:00〜17:00までの1時間ごとに、その時間以降、
セルの値が特定のものだったら色を変える、というものです。

A1セルの値は不定の時間によって○→△→□と変化していき、
B1、C1セルの値は不変です。

そこで下記のようなマクロを作成しました。

Sub ChangeColor()

Dim rng1 As Range
Dim rng2 As Range
Dim rng3 As Range
Set rng1 = Range("A1")
Set rng2 = Range("B1")
Set rng3 = Range("C1")

  If Time > CDate("10:00") Then
    If rng1 Like "*○○*" And rng2 Like ("*い*") Then
      rng1.Interior.ColorIndex = 3
    End If
    
    If Time > CDate("11:00") Then
      If rng1 Like "*△△*" And rng3 Like ("*う*") Then
        rng1.Interior.ColorIndex = 4
      End If
      
      If Time > CDate("12:00") Then
        If rng1 Like "*□□*" And rng3 Like ("*う*") Then
          rng1.Interior.ColorIndex = 5
        End If
      
        If Time > CDate("13:00") Then
          
          If Time > CDate("14:00") Then
          
            If Time > CDate("15:00") Then
            
              If Time > CDate("16:00") Then
              
                If Time > CDate("17:00") Then
                
                
                End If
              End If
            End If
          End If
        End If
      End If
    End If
  End If

End Sub

とりあえず狙ったようには動くのですが、他サイトなどを見ると
あまりネストを深くするべきではない、などの記述がありますし
自分で見ても混乱する時があります。
また、時間と時間の間の条件は、今後追加や削除がありえます。
Select〜Caseを使えばいいらしい、というのは目にしたのですが
どう記述すればよいかがいまいち分かりません。
このような記述をより浅く、もしくは別の方法でより分かりやすく
記述するにはどうすればよいでしょうか。
よろしくお願いいたします。
・ツリー全体表示

【79568】ファイル名の先頭にXが勝手に付いた
質問  おぱぱ  - 18/1/10(水) 11:48 -

引用なし
パスワード
   EXCELでVBAを作って、自分の作業に使っています。
今回作業をしたら、いつの間にか、ファイル名が次のように変わっていました。
X・・・・29-3-10.6.xlsm ・はファイル名を伏字にした部分です。
データ更新が容易なように元のデータにリンクを貼っていたのですが、
データ項目が増えたのを失念して、エラー表示が出たのに、リンクを更新したのが
きっかけになったのかと思います。
リンク元とリンク先に前記のように×が付いてしまいました。
EXCELに詳しい人にも聞きましたが、見たことが無いそうです。
原因と処置を教えて下さい。
EXCELは、EXCEL2013、OSはWINDOWS7です。
・ツリー全体表示

【79567】Re:イベント管理:複数ファイルのイベント...
発言  γ  - 18/1/6(土) 7:38 -

引用なし
パスワード
   普通に考えて、昨年の7月に投稿された質問者さんが、
こちらを常に見ている可能性はとても低いので、
その方からの回答は期待できないと考えるのが自然です。

また、丸投げ的な質問になっているのではないか、
というやりとりがあったにもかかわらず、
そのスレッドに付け加える形で、
その質問者にコードを下さい、というのはいかにも安直で、
理解しかねます。

他人のスレッドに割り込んで便乗質問を追加するのではなく、
ご自分であらたなスレッドを立ち上げたほうがよいと思いますよ。

その場合、 17/7/7(金) 20:44 に提示がありましたコードを
理解するようにしてください。
そのうえで、どこまでご自分でトライされたかを付記して、質問して下さい。
なお、ご自分の場合のシートレイアウトを
あらためて説明してもらうとよいと思います。
・ツリー全体表示

【79566】Re:イベント管理:複数ファイルのイベント...
質問  同じ悩み  - 18/1/5(金) 13:25 -

引用なし
パスワード
   >VBA 初心者 さん:

希望された 複数ファイルで管理されたイベントの統合するための VBA code は完成することができましたでしょうか?
私も同じ悩みをもっており、このログにたどり着きました。
もし、よろしければCodeを教えていただけると助かります。
よろしくお願い致します。
・ツリー全体表示

【79565】Re:セル範囲内のユニークな文字列数をカ...
発言  Aisa  - 18/1/1(月) 2:13 -

引用なし
パスワード
   ▼γ さん:
重ね重ね失礼いたしました。
・ツリー全体表示

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