Excel VBA質問箱 IV

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

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


13 / 3840 ページ ←次へ | 前へ→

【82222】Re:VLOOKUPで文字色もコピーする方法
発言  マナ  - 23/10/25(水) 16:21 -

引用なし
パスワード
   ▼まき さん:

1文字ずつ処理しているので仕方がないです。
罫線とか背景色等の他の書式もコピーして良いなら
セル単位で処理できるので早いです。
・ツリー全体表示

【82221】Re:セルの背景色で判断する
お礼  April  - 23/10/25(水) 14:02 -

引用なし
パスワード
   ▼MK さん:
>> If ActiveSheet.Range("A:M").Interior.ColorIndex = 3 Then
>
>これは、
>A1〜M1048576の全てのセルの背景色が赤の時のみTrueが返ってきます。
>
>URLを貼ったFindFormatの使用例です。

お礼が遅くなりまして大変申し訳ありません。
頂きましたコードを使用しまして、Trueの場合「OK]表示するように作ってみました。

これからもっと勉強します。
お世話になりました。
・ツリー全体表示

【82220】Re:VLOOKUPで文字色もコピーする方法
質問  まき  - 23/10/24(火) 16:31 -

引用なし
パスワード
   遅くなりました。
確認をしたところ全ての動作は思い通りできていました。
一点だけ文字と文字色を読み込むのに時間がかかるのですがそれはどうしょうもないことなのでしょうか。
・ツリー全体表示

【82219】Re:Office365で40036のエラー(Worksheet...
発言  マナ  - 23/10/23(月) 19:22 -

引用なし
パスワード
   ▼TU さん:

>〇エラーが出る箇所
> 以下の、"ThisWorkbook.Worksheets("入力シート").Range(t_range).Value = wk.Worksheets("入力シート").Range(t_range).Value"
> の部分
>
>〇エラー詳細
> 実行時エラー '40036' アプリケーション定義またはオブジェクト定義のエラーです


エラー発生時のt_rangeの値は何でしょうか
> 
・ツリー全体表示

【82218】Office365で40036のエラー(Worksheet関連)
質問  TU  - 23/10/23(月) 9:23 -

引用なし
パスワード
   お世話になります。

表題の通りなのですが、
あるExcel2013で作成していたマクロが、
365にアップデートした環境で実行したところエラーが出るようになりました。

〇概要
・同じフォーマットの別のファイルから、内容をコピーしてくる、というマクロ
・wk (Workbook)にコピー元のブックをセットしている
・セルマスタ表が別途あり、そこからコピー対象セルを取得し、
 コピー元の対象セルから、コピー先の対象セルへ値をコピー、を繰り返す、というもの

〇エラーが出る箇所
 以下の、"ThisWorkbook.Worksheets("入力シート").Range(t_range).Value = wk.Worksheets("入力シート").Range(t_range).Value"
 の部分

  For j = 1 To 5
  t_range = .Cells(i, j + 10).Text
   ThisWorkbook.Worksheets("入力シート").Range(t_range).Value = wk.Worksheets("入力シート").Range(t_range).Value
  Next j


〇エラー詳細
 実行時エラー '40036' アプリケーション定義またはオブジェクト定義のエラーです
 

365特有の仕様があるのでしょうか。
Workbookuのactivateを挟んでみたり、参照設定を疑ったりしたのですが、解決せず・・・
何かご存知の方おられましたら、ご教示いただけますと幸いです。

情報に不足などありましたらお知らせください。
・ツリー全体表示

【82217】Re:セルの背景色で判断する
発言  MK  - 23/10/20(金) 21:30 -

引用なし
パスワード
   > If ActiveSheet.Range("A:M").Interior.ColorIndex = 3 Then

これは、
A1〜M1048576の全てのセルの背景色が赤の時のみTrueが返ってきます。

URLを貼ったFindFormatの使用例です。

Sub test2()
Dim ws As Worksheet
 With Application.FindFormat
  .Clear
  .Interior.Color = vbRed
 End With
 Set ws = ActiveSheet
 If ws.Range("A:M").Find(What:="", searchformat:=True) Is Nothing Then
   MsgBox "赤無し"
 Else
   MsgBox "赤有り"
 End If
End Sub
・ツリー全体表示

【82216】Re:VLOOKUPで文字色もコピーする方法
発言  マナ  - 23/10/20(金) 21:00 -

引用なし
パスワード
   ▼まき さん:
>C3とC4など結合されている場合も同じものでいけるでしょうか。

たぶんOK
・ツリー全体表示

【82215】Re:VLOOKUPで文字色もコピーする方法
お礼  まき  - 23/10/20(金) 20:27 -

引用なし
パスワード
   ありがとうございます。
すぐに確認ができないので後日確認してみようと思うのですが、説明が不足していた部分があり、代入場所がC3ではなくC3とC4など結合されている場合も同じものでいけるでしょうか。
・ツリー全体表示

【82214】Re:VLOOKUPで文字色もコピーする方法
発言  マナ  - 23/10/20(金) 17:06 -

引用なし
パスワード
   ▼まき さん:

Sub test()
  Dim rng As Range, m, k As Long
  
  Set rng = Worksheets("入力用").Columns(1).Cells
  
  For k = Range("B1").Value To Range("B2").Value
    m = Application.Match(k, rng, 0)
    If IsNumeric(m) Then
      Range("A1").Value = k
      CopyWithColor rng(m, 2), Range("C3")
      CopyWithColor rng(m, 4), Range("D3")
      CopyWithColor rng(m, 6), Range("E3")
      ActiveSheet.PrintPreview
    End If
  Next
  
End Sub

Private Sub CopyWithColor(rngFrom As Range, rngTo As Range)
  Dim k As Long
  
  rngTo.Value = rngFrom.Value
'  rngTo.Font.Color = rngFrom.Font.Color

  For k = 1 To Len(rngTo.Value)
    rngTo.Characters(k, 1).Font.Color = rngFrom.Characters(k, 1).Font.Color
  Next

End Sub
・ツリー全体表示

【82213】Re:セルの背景色で判断する
回答  April  - 23/10/20(金) 13:18 -

引用なし
パスワード
   何度もありがとうございます。
リンク先も読ませていただいたのですが、理解に乏しくうまくいきません。
良ければコードを頂いてお教えくださいませんでしょうか。

背景色は赤いときのみNGの表示を行いたいです。
・ツリー全体表示

【82212】Re:セルの背景色で判断する
発言  MK  - 23/10/20(金) 12:05 -

引用なし
パスワード
   >Interior.ColorIndex

念のため書いておきます。

ColorIndexは、デフォルトでは3は赤になっていますが、
ユーザーがパレットの色を変えた場合は3が別の色に
なってる可能性があります。
ほとんどの人はデフォルト部分は変えないとは思いますが。

RGBで指定する
VbRed

などでも色を指定できます。
・ツリー全体表示

【82211】Re:セルの背景色で判断する
発言  MK  - 23/10/20(金) 11:46 -

引用なし
パスワード
   ↓のコードを実行してみてください。

MsgBox ActiveSheet.Range("A:M").Interior.ColorIndex = 3

A1〜M列の最大行全てのセルの背景色の色インデックスが3だったら
Trueが返ります。

一つでもセルの背景色の色インデックスが3でないのがあるとエラーになります。

本当に1行目〜最大行(バージョンによって最大行数が変わります)の背景色
を対象にする必要があるのですか?
・ツリー全体表示

【82210】Re:セルの背景色で判断する
発言  MK  - 23/10/20(金) 11:30 -

引用なし
パスワード
   私のレスをよく見てください。
・ツリー全体表示

【82209】Re:セルの背景色で判断する
回答  April  - 23/10/20(金) 11:26 -

引用なし
パスワード
   皆様ありがとうございます。
ご指摘いただきまして修正しましたが、赤い背景色のセルが無くてもNGが表示されてしまいます。
この理由を教えていただけませんか?

  
  If ActiveSheet.Range("A:M").Interior.ColorIndex = 3 Then
    Cells(2, 8).Value = "OK"
  Else
    Cells(2, 8).Value = "NG"
  End If
・ツリー全体表示

【82208】Re:セルの背景色で判断する
発言  MK  - 23/10/20(金) 11:21 -

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

ht tps://www.hokkyokun.com/findmethod-format/
・ツリー全体表示

【82207】Re:セルの背景色で判断する
発言  MK  - 23/10/20(金) 11:17 -

引用なし
パスワード
   コードをよく見たらループにすらなってないですね。
ループでセル範囲を見ていくようにしたらいいと思います。
・ツリー全体表示

【82206】Re:セルの背景色で判断する
発言  MK  - 23/10/20(金) 11:14 -

引用なし
パスワード
   直接の回答ではありません。

COUNTの初期化がされてませんが、ここでは
エクセル君が忖度して初期値が0になってると思います。

予約語かわかりませんが、
COUNT
というのは変数名には不適切だと思います。
・ツリー全体表示

【82205】セルの背景色で判断する
質問  April  - 23/10/20(金) 11:10 -

引用なし
パスワード
   こんにちは、下記の件につきましてご教示頂けたらと思います。

Sheet1のA〜M列内で背景色に赤のセルがあればB2セルに「NG」、
他の背景色だったり色がなければB2セルに「OK」を出すマクロを考えています。

下記の通りコードを作成したのですが、エラーになってしまいます。
どのように修正すればよろしいでしょうか。

Sub TEST()

  Dim count As Long

  If ActiveSheet.Range("A:M").Interior.ColorIndex = 3 Then '赤を指定
    count = count + 1
  End If
  Next
  If count = 0 Then
    Cells(2, 8).Value = "OK"
  Else
    Cells(2, 8).Value = "NG"
  End If
End Sub
・ツリー全体表示

【82204】Re:VLOOKUPで文字色もコピーする方法
回答  まき  - 23/10/19(木) 23:00 -

引用なし
パスワード
   はい、複数色が混在します。
・ツリー全体表示

【82203】LZHの解凍(64bit)
質問  かんだ  - 23/10/19(木) 22:29 -

引用なし
パスワード
   こんにちは。
エクセルのVBAで、LZHの圧縮ファイルを解凍するプログラムを10年くらい前に作成しました。私はVBAの詳しい知識がなく、webの情報で試行錯誤しながら作成しました。32bitのエクセルでしたので、"UNLHA32.DLL"を使ったプログラムでした。
今回パソコンが変わり、OFFICE365の64bit版のエクセルになりました。プログラムを動かしたところ、"UNLHA32.DLL"を呼び出すタイミングで、「DLL読み込み時のエラーです。」というメッセージが出ました。
"UNLHA32.DLL"の64bit版を探しましたが見つかりませんでした。

LZHの圧縮ファイルを解凍できるDLL(64bitで動くDLL)がわかりません。
教えていただけませんでしょうか?
宜しくお願いします。
・ツリー全体表示

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