Excel VBA質問箱 IV

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

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


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

【75175】Re:VLOOKUPのセルを含むとエラーが出ます...
回答  ウッシ  - 13/12/26(木) 10:16 -

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

こんにちは

小数点以下があるのなら、

Dim m As Double

として下さい。

Long は整数を想定してました。


>ウッシさん、ありがとうございます。
>
>早速試してみました。
>エラーは起きませんが、MAXではないセルを装飾します。
>
>また、セルの値ですが、小数点以下7桁というのがほとんどです。
>整数で試してみたところ、正常に動きましたが、
>関数で出た値をコピペして試した結果、MAXではない数値を装飾しました。
>そういったことも関係あるのでしょうか?
>
>また、当方エクセル2003を使用しておりますが、
>そういったことも関係ありますでしょうか?
>
>よろしくお願いいたします。
・ツリー全体表示

【75174】Re:VLOOKUPのセルを含むとエラーが出ます...
質問  しずか  - 13/12/26(木) 9:46 -

引用なし
パスワード
   ウッシさん、ありがとうございます。

早速試してみました。
エラーは起きませんが、MAXではないセルを装飾します。

また、セルの値ですが、小数点以下7桁というのがほとんどです。
整数で試してみたところ、正常に動きましたが、
関数で出た値をコピペして試した結果、MAXではない数値を装飾しました。
そういったことも関係あるのでしょうか?

また、当方エクセル2003を使用しておりますが、
そういったことも関係ありますでしょうか?

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

【75173】Re:VBAでオートフィルタ後に保存するとフ...
発言  γ  - 13/12/26(木) 6:40 -

引用なし
パスワード
   こんにちは。
> 現在、保存の直前にシートをオートフィルタでソートするようにVBAを作成しています。
> しかし、ソートせずに保存するよりもファイルサイズが大きくなってしまっており、
> これを解消したいと考えています。
実現したいことを明確にしたほうがよろしいかと思います。
必要なことは何ですか?
ソートして保存することですか?
オートフィルターも必要なのですか?その理由は?
必要なことならファイルサイズが増えても致し方ないです。
手作業でしようがマクロでしようが、ファイルが増大することは同じじゃないですか?
まず、何を目的にしているのかを明確にしましょう。

>コードの書き方など、おかしい箇所がありますでしょうか。
まず、そのコードがエラーにならずに機能しているかどうかを教えてください。
オートフィルターが掛かっていなければエラーになるとか、
シートの指定は実際どうなっているのか、とか気になりますが、
それらが常にクリアされていて、問題なく機能するということならOKでしょう。
・ツリー全体表示

【75172】VBAでオートフィルタ後に保存するとファ...
質問  らいおん  - 13/12/25(水) 22:40 -

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

現在、保存の直前にシートをオートフィルタでソートするようにVBAを作成しています。
しかし、ソートせずに保存するよりもファイルサイズが大きくなってしまっており、これを解消したいと考えています。

下記の様に、保存前に標準モジュールに作成したSorting()を呼び出し、対象のシートを昇順でソートしています。
コードの書き方など、おかしい箇所がありますでしょうか。
よろしくお願いいたします。

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
  Call sorting(SheetName)
End Sub

Sub sorting(sName As String)
  ActiveWorkbook.Worksheets(sName).AutoFilter.Sort.SortFields.Clear
  ActiveWorkbook.Worksheets(sName).AutoFilter.Sort.SortFields.Add Key _
    :=Range("B8"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
    xlSortNormal
  With ActiveWorkbook.Worksheets(sName).AutoFilter.Sort
    .Header = xlYes
    .MatchCase = False
    .Orientation = xlTopToBottom
    .SortMethod = xlPinYin
    .Apply
  End With
End Sub
・ツリー全体表示

【75171】Re:新しいページに開いてから上手く動作...
発言  Abyss  - 13/12/25(水) 20:22 -

引用なし
パスワード
   ごテスト中のIEは、IE11ですか?
・ツリー全体表示

【75170】Re:VLOOKUPのセルを含むとエラーが出ます...
回答  ウッシ  - 13/12/25(水) 16:31 -

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

こんにちは

値を検索するために、Lookin をセットします。

Sub てすと()
  Dim m As Long
  Dim t As Range
  With Range("A1:I10")
    m = Application.WorksheetFunction.Max(.Cells)
    Set t = .Find(What:=m, LookIn:=xlValues)
  End With
  With t
    .BorderAround Weight:=xlMedium, ColorIndex:=3
    .Font.Bold = True
  End With
End Sub


>お世話になっております。今回もよろしくお願いいたします。
>
>下記のようなマクロを作りました。
>
>
>Sub てすと()
>
>    Range("A1:I10").Select
>    Selection.Find(What:=Application.WorksheetFunction.Max(Selection)).Select
> 
>  With Selection
>   
>    .BorderAround Weight:=xlMedium, ColorIndex:=3
>    .Font.Bold = True
>    
>  End With
>
>End Sub
>
>
>最初に選ぶセルが"A1:I10"となっていますが、
>同じ作業を別の範囲でもやります。
>
>この、選んだ範囲のセルが、数値の入力された普通のセルですと問題なく動きますが、
>そのセルにVLOOKUPの関数が入っているとエラーがおこります。
>
>
>これを動かす方法はありますでしょうか?
>
>お知恵をお貸しください。
>よろしくお願いいたします。
・ツリー全体表示

【75169】VLOOKUPのセルを含むとエラーが出ます。
質問  しずか  - 13/12/25(水) 15:52 -

引用なし
パスワード
   お世話になっております。今回もよろしくお願いいたします。

下記のようなマクロを作りました。


Sub てすと()

    Range("A1:I10").Select
    Selection.Find(What:=Application.WorksheetFunction.Max(Selection)).Select
 
  With Selection
   
    .BorderAround Weight:=xlMedium, ColorIndex:=3
    .Font.Bold = True
    
  End With

End Sub


最初に選ぶセルが"A1:I10"となっていますが、
同じ作業を別の範囲でもやります。

この、選んだ範囲のセルが、数値の入力された普通のセルですと問題なく動きますが、
そのセルにVLOOKUPの関数が入っているとエラーがおこります。


これを動かす方法はありますでしょうか?

お知恵をお貸しください。
よろしくお願いいたします。
・ツリー全体表示

【75168】Re:テキストボックスに候補表示・・・・
発言  とおりすぎーた  - 13/12/25(水) 10:18 -

引用なし
パスワード
   すぐ役立つエクセルVBAマクロ集
コンボボックスで1文字目一致で入力候補を表示するには?
というのに似たような内容があります。
検索ください。
・ツリー全体表示

【75167】Re:このコード何をしているか教えてくだ...
お礼  shingo  - 13/12/24(火) 19:30 -

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

ご回答ありがとうございます。感謝致します。

>   Rows(p).Delete
>のほうが分りやすくないですか?(^^

なるほどありがとうございます!

非常に助かりました。コメントは大事ですね。ありがとうございました。


>▼shingo さん:
>>こんにちは。以前私が書いたコードなのですが、コメントを残しておくのを忘れまして、何をしているのかわかりません。普段はVBAは書きません。JavaScriptばっかり書いてます。
>>
>> lRow = Cells(Rows.Count, 1).End(xlUp).Row
>> For p = lRow To 2 Step -1
>>  If VarType(Cells(p, 1)) = vbEmpty Or Cells(p, 1).Value = "なし" Then
>>   Range(p & ":" & p).Delete
>>  End If
>> Next p
>>
>> なんとなく「なし」とあるセルを行ごと削除しているとは思うのですが、
>> それであってるでしょうか。
>それでいいと思います。
>A列の最終セルから、上に、空白セルか、またはセルの値が「なし」ならば
>その行を削除しているんですね。
>
>>   Range(p & ":" & p).Delete
>は
>   Rows(p).Delete
>のほうが分りやすくないですか?(^^
・ツリー全体表示

【75166】Re:このコード何をしているか教えてくだ...
発言  kanabun  - 13/12/24(火) 18:53 -

引用なし
パスワード
   ▼shingo さん:
>こんにちは。以前私が書いたコードなのですが、コメントを残しておくのを忘れまして、何をしているのかわかりません。普段はVBAは書きません。JavaScriptばっかり書いてます。
>
> lRow = Cells(Rows.Count, 1).End(xlUp).Row
> For p = lRow To 2 Step -1
>  If VarType(Cells(p, 1)) = vbEmpty Or Cells(p, 1).Value = "なし" Then
>   Range(p & ":" & p).Delete
>  End If
> Next p
>
> なんとなく「なし」とあるセルを行ごと削除しているとは思うのですが、
> それであってるでしょうか。
それでいいと思います。
A列の最終セルから、上に、空白セルか、またはセルの値が「なし」ならば
その行を削除しているんですね。

>   Range(p & ":" & p).Delete

   Rows(p).Delete
のほうが分りやすくないですか?(^^
・ツリー全体表示

【75165】このコード何をしているか教えてください
質問  shingo  - 13/12/24(火) 18:25 -

引用なし
パスワード
   こんにちは。以前私が書いたコードなのですが、コメントを残しておくのを忘れまして、何をしているのかわかりません。普段はVBAは書きません。JavaScriptばっかり書いてます。

 lRow = Cells(Rows.Count, 1).End(xlUp).Row
 For p = lRow To 2 Step -1
  If VarType(Cells(p, 1)) = vbEmpty Or Cells(p, 1).Value = "なし" Then
   Range(p & ":" & p).Delete
  End If
 Next p

なんとなく「なし」とあるセルを行ごと削除しているとは思うのですが、それであってるでしょうか。

お助けください。

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

【75164】Re:新しいページに開いてから上手く動作...
質問  エクセル初心者  - 13/12/24(火) 12:14 -

引用なし
パスワード
   エラーが発生する方です。
下のが今のプログラムになっています。これを起動させると「オブジェクトが必要です」と出ます。


Dim objShell As Object
Dim objIE As Object

'IEの起動
Set objIE = CreateObject("InternetExplorer.Application")
objIE.Visible = True
'処理したいページを表示します。
objIE.Navigate2 Cells(Range("d2"), 9).Value

'ページの表示完了を待ちます。
While objIE.Busy = True Or objIE.readyState <> READYSTATE_COMPLETE
 DoEvents
Wend

'ログインする
objIE.document.getElementsByName("uid")(0).Value = Range("c4").Value
objIE.document.getElementsByName("pw")(0).Value = Range("c5").Value
objIE.document.forms(0).submit

'ページの表示完了を待ちます。
While objIE.Busy = True Or objIE.readyState <> READYSTATE_COMPLETE
 DoEvents
Wend

'新しいページをobjIEにセットする
Set objShell = CreateObject("Shell.Application")
Set objIE = objShell.Windows(objShell.Windows.Count - 1)
Set objShell = Nothing

objIE.document.all("ITEM_NAME").Value = "角管"
・ツリー全体表示

【75163】Re:新しいページに開いてから上手く動作...
発言  Abyss  - 13/12/23(月) 21:16 -

引用なし
パスワード
   > 上手く動作できません。

なんらかのエラーもなく、ただ上手く行かないですか?
・ツリー全体表示

【75162】Re:新しいページに開いてから上手く動作...
発言  Abyss  - 13/12/23(月) 21:12 -

引用なし
パスワード
   お使いのIEのバージョンは、
もしかしてIE11ですか?
・ツリー全体表示

【75161】新しいページに開いてから上手く動作する...
質問  エクセル初心者  - 13/12/23(月) 14:25 -

引用なし
パスワード
   現在、エクセルでIEを開いて自動ログインし、エクセルの文字を書き込んで送信するというプログラムを組んでいます。しかし、自動ログインが出来たのですが、新しいページになってから上手く動作できません。下に今のプログラムを載せます。アドバイスお願いします。


Sub 起動()
Dim objIE As Object

'IEの起動
Set objIE = CreateObject("InternetExplorer.Application")
objIE.Visible = True
'処理したいページを表示する
objIE.Navigate2 Cells(Range("d2"), 9).Value

'ページの表示完了を待つ
While objIE.Busy = True Or objIE.readyState <> READYSTATE_COMPLETE
 DoEvents
Wend

'ログインする
objIE.document.getElementsByName("uid")(0).Value = Range("c4").Value
objIE.document.getElementsByName("pw")(0).Value = Range("c5").Value
objIE.document.forms(0).submit

'ページの表示完了を待つ
While objIE.Busy = True Or objIE.readyState <> READYSTATE_COMPLETE
 DoEvents
Wend

objIE.document.getElementsByName("ITEM_NAME")(0).Value = "角管"
End Sub
・ツリー全体表示

【75160】Re:特定の系列を一時的に非表示にさせる...
お礼  take  - 13/12/23(月) 0:36 -

引用なし
パスワード
   回答ありがとうございました。ずばりの内容でした。大変ありがとうございます。

やりたかったことは、ActiveChart.GetChartElement x, y, ElemID, Arg1, Arg2
を使用し、要素を抽出していたのですが、グラフ上には抽出の不要な系列があるためうまく抽出できていませんでした。(色なしグラフ系列にしたのですが、カーソルを目的の要素付近に近づけると、やはり不要系列を抽出してしまい、困っていました。)そのため、抽出時に一時非表示と考えていました。もう少し勉強してみます。

For i = 5 To 8

ActiveSheet.ChartObjects(Chartname).Select

With ActiveChart.FullSeriesCollection(i)

 .IsFiltered = False ”表示時にはTrueとしています。
 
End With

Next i
・ツリー全体表示

【75159】Re:ComboBoxをクリック後、2列表示したい
発言  Excel2002使用者  - 13/12/22(日) 23:53 -

引用なし
パスワード
   ヘルプをよく見ていると、自己解決できました。

.ComboBox の Text プロパティを使えば、下記コードで2列表示ができました。

Private Sub ComboBox1_Change()
Dim idx As Long
  idx = Me.ComboBox1.ListIndex
  If idx < 0 Then Exit Sub
  With Me.ComboBox1
    .Text = .List(idx, 0) & " " & .List(idx, 1)
  End With
End Sub
・ツリー全体表示

【75158】Re:特定の系列を一時的に非表示にさせる...
発言  マナ  - 13/12/22(日) 22:47 -

引用なし
パスワード
   こんな感じのことですか

Sub test()
  With ActiveChart.FullSeriesCollection(1)
    .IsFiltered = Not .IsFiltered
  End With
End Sub
・ツリー全体表示

【75157】特定の系列を一時的に非表示にさせる E...
質問  take  - 13/12/22(日) 12:30 -

引用なし
パスワード
   Excel2013でグラフのマクロを作っています。グラフ中には8本の散布図が表示されており、その中で特定の系列を非表示にしたいと思います。機能としてはExcel2013から対応されているもので、データの選択 → データソースの選択窓で、凡例項目にチェックボックスとして追加された機能をVBAで動作させたいと思います。このチェックボックスをOFFにすることで特定の系列が非表示になり、思うとおりの動作になるのですが、マクロの自動記録では、コードが出力されませんでした。方法を教えていただけませんか?
・ツリー全体表示

【75156】Re:セルの値を配列に格納して計算するユ...
発言  γ  - 13/12/21(土) 21:00 -

引用なし
パスワード
   どうも私が誤解していたようですね。
ユーザー定義関数ということでしたので、
それをそのままセルに入力するのかと思っていました。

そうではなくて、Functionモジュールを考える
最初のところの一般的な話だったのですね。
余計なことでした。
それでは、頑張って下さい。
・ツリー全体表示

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