Excel VBA質問箱 IV

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

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


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

【80142】Re:Excel vbaのコードをVBSに変換
質問  HY  - 18/9/11(火) 8:35 -

引用なし
パスワード
   よろずや様、早速のご返答ありがとうございます。


Dim mya
Dim myb
Dim myc
Dim myd
Set mya = CreateObject("ADODB.Connection")
myb = "MDBファイルのフルパス"
With CreateObject("Excel.Application")
  Set myc = .Workbooks.Open("xlsファイルフルパス").ActiveSheet.Range("A15")
  .Visible = True
End With
With mya
  .Provider = "Microsoft.Jet.OLEDB.4.0;"
  .ConnectionString = "data source=" & myb
  .Open
  Set myd = .Execute("クエリ")
  myc.CopyFromRecordset myd
  Set mya = Nothing
  Set myd = Nothing
End With

 上記は私も試していたのですが、"14行文字2、プロバイダーがみつかりません。正しくインストールされていないかもしれません。、ソースADODB.Connection"というエラーがでてしまいます。
お手数ですが、解決策をご教授できませんでしょうか?
私の環境は、Win10、Office2003です。
よろしくお願いいたします。
・ツリー全体表示

【80141】Re:Excel vbaのコードをVBSに変換
回答  よろずや  - 18/9/10(月) 23:33 -

引用なし
パスワード
   環境が違うので試してませんが...

Dim mya
Dim myb
Dim myc
Dim myd
Set mya = CreateObject("ADODB.Connection")
myb = "MDBファイルのフルパス"
With CreateObject("Excel.Application")
  Set myc = .Workbooks.Open("xlsファイルフルパス").ActiveSheet.Range("A15")
  .Visible = True
End With
With mya
  .Provider = "Provider=Microsoft.Jet.OLEDB.4.0;"
  .ConnectionString = "data source=" & myb
  .Open
  Set myd = .Execute("クエリ")
  myc.CopyFromRecordset myd
  Set mya = nothing
  Set myd = nothing
End With
・ツリー全体表示

【80140】Excel vbaのコードをVBSに変換
質問  HY  - 18/9/10(月) 22:45 -

引用なし
パスワード
   下のコードをVBSに変換したいのですが、ADOの接続の所でエラーが出てしまいます。excelにクエリの結果を表示するコードです。
Createobject関数、変数の型宣言ができない、WSHに依存等の事しかVBSに関してはわかりません。
Dim mya As ADODB.Connection
Dim myb As String
Dim myc As Excel.Range
Dim myd As ADODB.Recordset

Set mya = New ADODB.Connection

myb = "MDBファイルのフルパス"
With New Excel.Application
  Set myc = .Workbooks.Open("xlsファイルフルパス").ActiveSheet.Range("a15")
 
  .Visible = True
End With

With mya
.Provider = "microsoft.jet.oledb.4.0"
.ConnectionString = "data source=" & myb
.Open
Set myd = .Execute("クエリ")
myc.CopyFromRecordset myd
mya=nothing
myd=nothing


End With

この様な処に聞くのが初めてですので、不慣れな点はあるとは思いますが、
ご教授お願いいたします。
よろしくお願いいたします。
・ツリー全体表示

【80139】Re:別のシートから別のシートへ
回答  γ  - 18/9/10(月) 21:40 -

引用なし
パスワード
   Range("B3").SpecialCells(xlCellTypeBlanks) = 0
はどういう意図でしょうか?
・ツリー全体表示

【80138】別のシートから別のシートへ
質問  まくろ  - 18/9/10(月) 11:42 -

引用なし
パスワード
   シート1へシート2のデータを日付を照合してデータを自動コピーする
マクロを作りました。
何故か昨日の日付と今日の日付がデータが入らないのですが何故でしょうか?
いつ行っても一昨日やほかの日のデータは入ります。
VBA初心者です。よろしくお願いします。

[sheet1]
A列に1行目から2018/4/1〜2018/9/31のように日付が書いてあります。
B列以降は空欄です。
[sheet2]
A列に1行目に2018/9/10など日付があります。
B列以降のデータをコピーしたいです。

9/8のデータは反映されるのですが、9/9や9/10は0が入ってしまいます。


Sub ()

Dim c As Range
Dim myRow As Long
Dim myrow2 As Long


Sheets("Sheet1").Activate
With Sheets("Sheet2")
myRow = .Cells(Rows.Count, 1).End(xlUp).Row
For Each c In .Range("A1:A" & myRow)
If WorksheetFunction.CountIf(Columns(1), c) Then
myrow2 = WorksheetFunction.Match(c, Columns(1), 0)
Cells(myrow2, 1).Resize(, 50).Value = c.Offset(, 0).Resize(, 50).Value
End If
Next c
End With
Range("B3").SpecialCells(xlCellTypeBlanks) = 0


End Sub
・ツリー全体表示

【80137】Re:条件分岐の使い方
お礼  ノンボ E-MAIL  - 18/9/1(土) 11:37 -

引用なし
パスワード
   ▼マナ さん:
>▼ノンボ さん:
>
>問題がでるかどうかはデータによると思います。
>空白がB2だけで、単に2行目を上に詰めたい(行削除せずに)
>ということであれば
>
>1)B2が空白でないなら終了
>2)A3;C10をコピーし、A2に貼付け
>3)A10;C10の値をクリア
>
>でもよいのではと思います。
 マナさん

 何度もありがとうございました。
 Exitsubを使って、うまくいきそうなきがします。または、コピーペーストで
 なんとかなるかもしれません。いろいろ試してみます。いろいろご教授していた だきありがとうございました。もっと勉強します。データをもう一度確認して
 みます。
 大変ありがとうございました。
・ツリー全体表示

【80136】Re:条件分岐の使い方
発言  マナ  - 18/9/1(土) 11:23 -

引用なし
パスワード
   ▼ノンボ さん:

問題がでるかどうかはデータによると思います。
空白がB2だけで、単に2行目を上に詰めたい(行削除せずに)
ということであれば

1)B2が空白でないなら終了
2)A3;C10をコピーし、A2に貼付け
3)A10;C10の値をクリア

でもよいのではと思います。
・ツリー全体表示

【80135】Re:条件分岐の使い方
発言  ノンボ E-MAIL  - 18/9/1(土) 11:10 -

引用なし
パスワード
   ▼マナ さん:
>▼ノンボ さん:
>。
>> 条件1は、Bセルが空白の場合は、現在のコードで問題ありません。
>> 条件2、Bセルが空白でない場合が、3行目いかが消えてしまします。Bセルが空 白でない場合は、そのまま削除にならずにしたいです
>
>ごめんなさい。まだわかりません。
>
>条件1について問題ないということは、
>「Bセル」というのは「B2セル」の意味でよいですか。
>
> 
>もしそうなら、↓の理解で間違いないでしょうか。
>
>>条件1;B2セルが空白の場合3行目以下をぜんたいに上につめる
>>条件2;B2セルが空白でない場合は何もしない
>>
>>で、条件1は、現在のコードで問題ない
>
>
>この場合、最初にコードを1行追加し
>B2セルが空白ならExit subで終了するようにすればよいです。
>
>'---------
>
>それとも、「Bセル」は「B列のセル」という意味でしょうか
>その場合は、iとjが同じ場合は値をクリアしなければよいです。
>
>でも、結合セルがあのに、本当に出来ているのでしょうか?
>
マナさん
 なんどもありがとうございます。
 Bセルは、B2セルです。すみません。
 マナさんが言われるコードを書いてみました。
 Sub Test()
  Dim i As Integer, j As Integer
  If Range("b2") = "" Then
     Exit Sub
  End If
  j = 1
  For i = 2 To 10
    If (Range("B" & i).Rows <> "") Then
      j = j + 1
      Rows(i).Copy Rows(j)
      Rows(i) = ""
    End If
  Next i
End Sub
 
 間違えがあるとおもいますが、ご教授ください。
 何度も申し訳ありません。

>
>
・ツリー全体表示

【80134】Re:条件分岐の使い方
発言  マナ  - 18/9/1(土) 10:51 -

引用なし
パスワード
   ▼ノンボ さん:

> 条件1は、Bセルが空白の場合は、現在のコードで問題ありません。
> 条件2、Bセルが空白でない場合が、3行目いかが消えてしまします。Bセルが空 白でない場合は、そのまま削除にならずにしたいです

ごめんなさい。まだわかりません。

条件1について問題ないということは、
「Bセル」というのは「B2セル」の意味でよいですか。

 
もしそうなら、↓の理解で間違いないでしょうか。

>条件1;B2セルが空白の場合3行目以下をぜんたいに上につめる
>条件2;B2セルが空白でない場合は何もしない
>
>で、条件1は、現在のコードで問題ない


この場合、最初にコードを1行追加し
B2セルが空白ならExit subで終了するようにすればよいです。

'---------

それとも、「Bセル」は「B列のセル」という意味でしょうか
その場合は、iとjが同じ場合は値をクリアしなければよいです。

でも、結合セルがあのに、本当に出来ているのでしょうか?


 
・ツリー全体表示

【80133】Re:条件分岐の使い方
お礼  ノンボ E-MAIL  - 18/9/1(土) 10:00 -

引用なし
パスワード
   ▼ねこの手 さん:
>▼ノンボ さん:
>>マナさん
>> 返信ありがとうございます。
>> 行全体でも削除してしまうとまずいです。罫線や一部セルが結合しております。
>
>横やり失礼します。
>
>結合してあるセルががあって、A,B,C列以外にもデータがあり、それらも同じように
>移動させないといけないってことですよね?
>
>一度、レイアウトを提示したほうが適切なアドバイスがもらえると思います。
 ねこの手さん:
 返信ありがとうございます。
 レイアウト全体、C列以下はないです。
 ご教授いただけましたら、お願いします。
・ツリー全体表示

【80132】Re:条件分岐の使い方
発言  ノンボ E-MAIL  - 18/9/1(土) 9:53 -

引用なし
パスワード
   ▼マナ さん:
>▼ノンボ さん:
>
>ますます何をしようとしているかわからなくなりました
>
>なので確認です。
>条件1;B2セルが空白の場合3行目以下をぜんたいに上につめる
>条件2;B2セルが空白でない場合は何もしない
>
>で、条件1は、現在のコードで問題ない
>
>ということで間違いないですか?
>条件2を追加するだけでよいなら簡単ですが…
>
マナさん
 返信ありがとうございます。
 わかりずらくて申し訳ありません。
 条件1は、Bセルが空白の場合は、現在のコードで問題ありません。
 条件2、Bセルが空白でない場合が、3行目いかが消えてしまします。Bセルが空 白でない場合は、そのまま削除にならずにしたいです。条件2を追加するコード をご教授いただければと思います。
 
>
・ツリー全体表示

【80131】Re:条件分岐の使い方
発言  ねこの手  - 18/9/1(土) 8:54 -

引用なし
パスワード
   ▼ノンボ さん:
>マナさん
> 返信ありがとうございます。
> 行全体でも削除してしまうとまずいです。罫線や一部セルが結合しております。

横やり失礼します。

結合してあるセルががあって、A,B,C列以外にもデータがあり、それらも同じように
移動させないといけないってことですよね?

一度、レイアウトを提示したほうが適切なアドバイスがもらえると思います。
・ツリー全体表示

【80130】Re:条件分岐の使い方
発言  マナ  - 18/9/1(土) 8:53 -

引用なし
パスワード
   ▼ノンボ さん:

ますます何をしようとしているかわからなくなりました

なので確認です。
条件1;B2セルが空白の場合3行目以下をぜんたいに上につめる
条件2;B2セルが空白でない場合は何もしない

で、条件1は、現在のコードで問題ない

ということで間違いないですか?
条件2を追加するだけでよいなら簡単ですが…

 
  
・ツリー全体表示

【80129】Re:条件分岐の使い方
発言  ノンボ E-MAIL  - 18/9/1(土) 7:13 -

引用なし
パスワード
   ▼マナ さん:
>▼ノンボ さん:
>
>>セルを削除しますとフォーマットがくずれてしまいうまくありません。
>
>行全体を削除ですが、それでもだめなのですか?

マナさん
 返信ありがとうございます。
 行全体でも削除してしまうとまずいです。罫線や一部セルが結合しております。
 ほかに方法はありませんでしょうか。コードを書いていただくとたすかります。
 
・ツリー全体表示

【80128】Re:条件分岐の使い方
発言  マナ  - 18/8/31(金) 20:34 -

引用なし
パスワード
   ▼ノンボ さん:

>セルを削除しますとフォーマットがくずれてしまいうまくありません。

行全体を削除ですが、それでもだめなのですか?
・ツリー全体表示

【80127】Re:条件分岐の使い方
お礼  ノンボ E-MAIL  - 18/8/31(金) 20:23 -

引用なし
パスワード
   ▼マナ さん:
>▼ノンボ さん:
>
>こんな方法のほうが単純でよいのでは?
>
>1)ジャンプ機能でB列が空白セルを選択
>2)選択セルを行削除
>
> 
さっそくご返答いただきましてありがとうございます。
セルを削除しますとフォーマットがくずれてしまいうまくありません。
ほかの方法がありませんでしょうか?
・ツリー全体表示

【80126】Re:条件分岐の使い方
発言  マナ  - 18/8/30(木) 22:01 -

引用なし
パスワード
   ▼ノンボ さん:

こんな方法のほうが単純でよいのでは?

1)ジャンプ機能でB列が空白セルを選択
2)選択セルを行削除

 
・ツリー全体表示

【80125】条件分岐の使い方
質問  ノンボ E-MAIL  - 18/8/30(木) 21:25 -

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

 VBAのスキルがまだ拙いです。

 下記データがあります。

A列店舗コード B列口座コード C列売上金額

 100235     001       1,100
 100332     002       1,300
 100342     003       1,500
 100442     004       1,700
 100534     005       1,800
 100425     006       2,000
 100567     007       1,900
 100781     008       2,100

条件1 1行目のタイトル行(店舗コードなど)と2行目B列が空白の場合3行目以     降のデータをコピーして繰り上げます。
条件2 1行目のタイトル行と2行目B列が空白でない場合、3行め以降のデータは     そのままにしたいのです。
下記ソースコードを記入しました。

 Sub Test()
  Dim i As Integer, j As Integer
  j = 1
  For i = 2 To 10
    If (Range("B" & i).Rows <> "") Then
      j = j + 1
      Rows(i).Copy Rows(j)
      Rows(i) = ""
    End If
  Next i
End Sub

 条件1はうまくいくのですが、条件2ですとデータが削除されてしまいます。
  Exit for などいくつか試みてみましたがうまくいきません。どのようなコード を書けばよろしいでしょうか、ご教授ねがえればと思いまして投稿しました。
  よろしくお願いします。
・ツリー全体表示

【80124】Re:型宣言の場所
お礼  そば  - 18/8/28(火) 5:34 -

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

そうなのですね。理解しました。
・ツリー全体表示

【80123】Re:型宣言の場所
質問  そば  - 18/8/28(火) 5:33 -

引用なし
パスワード
   よろずやさん、ご回答ありがとうございます。

>のスペルは同じですか?

質問箱のコードは、
実際のコードをコピペしてきたものです。
そしてこれが全てです。

それとも、これだけでは足りなくて
エラーになっているのでしょうか?
・ツリー全体表示

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