Excel VBA質問箱 IV

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

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


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

【81037】データベースから表を作成したのですが
質問  Aces  - 19/7/23(火) 16:33 -

引用なし
パスワード
   見出シート、詳細シート、一覧シートがあります

見出シートのa列にあるデータで詳細シートのa列をフィルタをかけて抽出し

一覧シートにデータを貼り付ける

という作業です

(見出シート)
    A   ,   B   ,   C
1,
2,   No. ,
3,190721,
4,190722,

(詳細シート)抽出前
    A   ,   B   ,   C   ,  D
1,
2,No.  , 項目No.,項目名,数量
3,190721,  1   , りんご ,  5
4,190721,  2   , バナナ ,  6
5,190721,  3   , パイン ,  3
6,190722,  1   , りんご ,  2
7,190725,  1   , りんご ,  9
8,170101,  1   , りんご ,  8
9,170101,  2   , バナナ ,  4

(詳細シート)抽出後
    A   ,   B   ,   C   ,  D
1,
2, No.  , 項目No.,項目名,数量
3,190721,  1   , りんご ,  5
4,190721,  2   , バナナ ,  6
5,190721,  3   , パイン ,  3
6,190722,  1   , りんご ,  2


(一覧シート)
    A   ,   B   ,   C  
1,
2,項目/日,190721,190722
3,りんご ,  5   ,   2
4,バナナ ,  6   ,   -
5,パイン ,  3   ,   -

実際は数千行あるため、手作業だととても時間がかかってしまいます

こういうことがvbsで出来るのであれば教えて頂いたいです

ご面倒ではありますが、よろしくおねがいします
・ツリー全体表示

【81036】Re:データが入っている最後の行
発言  リスキーダック  - 19/7/23(火) 16:24 -

引用なし
パスワード
   >Lastlow や cells ( ) end などを使用すれば良いのでしょうか?

Lastlowが、言いたい事は解りのだけれど、何なのか解りません。
データ状態や人によって違いますが、一般的には
(どんな一般的なのか知らないけれど)

Range("E" & rows.count).end(xlup).row
Cells(rows.count,5).end(xlup).row

とか、使ってE、F列のどちらを使うか判定したり・・・。

けど、データの編集操作が荒い人には、使わないでセルを選択する方法にしたり。
データの下にどんなゴミが入っているのか解らないので・・・。
(下の方にゴミが入っているために500行しかないのに遅いと言われるのも腹が立つので)

注)Cells.lows.count 古いエクセルと混成ようならシートを指定した方がいいかも。

では。
・ツリー全体表示

【81035】データが入っている最後の行
質問  TK  - 19/7/23(火) 15:44 -

引用なし
パスワード
   E2とF2のデータを&で合成してA2に上書きし、

それをデータがある行まで行いたいのですが、どうすれば良いのでしょうか?

データが時には1000行、時には2000行と毎回違うので

Lastlow や cells ( ) end などを使用すれば良いのでしょうか?

ご教授、願います
・ツリー全体表示

【81034】Re:戻り値の後の:について
発言  γ  - 19/7/21(日) 22:12 -

引用なし
パスワード
   コロンの意味合いはマナさんのおっしゃるとおりでしょう。

プロシージャ全体を見ないと確定的なことは言えませんが、
Boolean型変数のデフォルト値は Falseなので、
このプロシージャの返り値としてデフォルト値をTrueにしておきたかった、
という意図だと想像されます。
(True,Falseの意味合いに依存しますが、普通はFalseがデフォルト値に
するのが一般的でしょうか。)

以下、余談。--------
私は、こうしたマルチステートメントは極力使わないようにしています。
それはリズムが崩れるからです(もし私にリズム感があればの話ですが)。
変数の宣言も一行に複数の変数を宣言することすらありません。

でも、最近の .Net系のVBなどでは、
変数宣言と初期値設定を一行に書いたりすることも
慣行としてあるようですから、一概には言えません。
ただし、ExcelVBAなどでは余り多数派にはなっていないと思いますが。
・ツリー全体表示

【81033】Re:セルの範囲指定について
お礼  り。  - 19/7/21(日) 20:10 -

引用なし
パスワード
   無事に反映されました。
非常に助かりました、有難う御座います。
・ツリー全体表示

【81032】Re:戻り値の後の:について
発言  マナ  - 19/7/21(日) 20:01 -

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

>戻り値の初期化なのでしょうか?

そうではなく、複数行を1行で記述するために
:(コロン)を使っているということです。
・ツリー全体表示

【81031】Re:セルの範囲指定について
発言  マナ  - 19/7/21(日) 19:49 -

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

If Target.Count > 1 Then Exit Sub
If Target.Column <> Columns("T").Column Then Exit Sub
If Target.Row < 8 Then Exit Sub
・ツリー全体表示

【81030】Re:戻り値の後の:について
質問  nanashi  - 19/7/21(日) 19:46 -

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

変数の場合は、宣言と初期化を1行で行っているとわかるのですが、
Function宣言時の戻り値のあとに「: Function名=値」という書き方は初めて見ました。
戻り値の初期化なのでしょうか?

ご存じであれば、ご教授お願いいたします。
・ツリー全体表示

【81029】セルの範囲指定について
質問  り。  - 19/7/21(日) 19:21 -

引用なし
パスワード
   VBA初心者です。

特定のセルから下方向全てに対して、クリックしたらカレンダーを表示するような指定を作っています。
「T列内の8行から下を全て」と指定するにはどのようにしたら良いでしょうか?
現状だと、T8をクリックした場合のみ表示されます。

ご教授お願い致します。


Private Sub Calendar1_Click()
   ActiveCell.Value = Calendar1.Value
   ActiveSheet.Calendar1.Visible = False
 End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
   If Target.Address = "$T$8" Then
     ActiveSheet.Calendar1.Visible = True
     ActiveSheet.Calendar1.Value = Date
    End If
 End Sub
・ツリー全体表示

【81028】Re:戻り値の後の:について
発言  マナ  - 19/7/21(日) 19:03 -

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

こういうことでしょうか。
ht tp://hensa40.cutegirl.jp/archives/6157
・ツリー全体表示

【81027】戻り値の後の:について
質問  nanashi E-MAIL  - 19/7/21(日) 18:51 -

引用なし
パスワード
   仕事で他人のコードを修正することになりました。

Public Function funcFinalize(ByRef info As BatchInformation) As Boolean: funcFinalize = True

のBoolean: funcFinalize = Trueのコロン以降の記述はどういうコードなのでしょうか?

ご教授お願いいたします。
・ツリー全体表示

【81026】Re:サーバー内にあるフォルダとファイル...
発言  γ  - 19/7/17(水) 7:08 -

引用なし
パスワード
   もう読んでいないでしょうけど、
一応コメントしておきます。

>ローカルルールを失念しておりました。
ローカルルールとはVBA質問箱基本ポリシーのことでしょうけど、
どの箇所を指していますか?

他人のコードをさもご自分が書いたかのように発言するのは、
ここだけのローカルルールでもなんでもありませんよ。
大げさにいえば、信義則違反です。

最初の質問もネット上の記事の無断引用ですね。URLは敢えて書きませんが。
これは著作権法違反の状態です。

基本ポリシーでは、引用にあたって著者の承諾をとれと言っていますが、
実際上は、出典が明記されていれば、違反を問われることはなかろうと
想像はします。
単に、こちらのサイト運営者のディスクレーマーと見て良いでしょう

なお、私の回答も他人のコードの紹介という手抜きなので
50歩100歩かもしれませんが、
URLの引用は原則として著作権法違反にはなりません。



> ご参考にいただいたサイト記事は拝見いたしました。
> しかし、途中で上手く起動しなくて断念しました・・
> (確か「ファイルパスが見当たりませんと出ました」)
> ゆえに別のコードを使った次第です。

別のサイトの記事を引用するまえに、
上記の点についてコメントを返していただければよかったですね。

InputBoxを使った最初のコードのことを言っているのでしょうけど、
それは単に入力を誤った可能性があるでしょう。
そもそも、それは結果表示に何の工夫もしていないので、注目するものではありません。

最後にある「つなぎ線」を使ったものに注目して欲しかったのです。
それはダイアログを使ってフォルダを選択するものですから、
間違いようがないはずです。(ネットワーク上のものも対象です。)

# つなぎ線を入れる処理は結構むずかしいです。
# 自力で到達するのはベテランでも手を焼くものかと思います。
# 一行一行理解することはとても有益なものではあります。
# たぶんあなたの目的は単に使うことでしょうけど。
・ツリー全体表示

【81025】Re:VBAによる電圧自動測定
回答  ムズロウ  - 19/7/12(金) 16:49 -

引用なし
パスワード
   ▼よろずや さん:
>▼ムズロウ さん:
>>▼ムズロウ さん:
>>>よろずやさんの方法で試してみたのですがエラーは出なくなったのですが
>>>500回ちゃんと測らなくなるようです
>>
>>追記でi = 23のときのUBound(DATA)の値は1でi = 24のときのUBound(DATA)の値は11でした
>>DATAを参照しても500カウントはされないようです
>
>いや、500回ちゃんと測られていないからエラーになるんであって
>UBound(DATA)を使ったせいではありません。


USB/GPIBのケーブルを新しいものに変えたら前のコードでうまく動きました、、
回答ありがとうございました
とても勉強になりました
500回測定に関しては
.WriteString “TRIG:COUN 500” で行い、
.WriteString “FETC?” でPCにデータを返しているようです
>
>500回ちゃんと測られる保証はないということ。
・ツリー全体表示

【81024】Re:グラフの凡例の文字の向きについて
発言  マナ  - 19/7/10(水) 20:07 -

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

>グラフを描画するマクロを作成したのですが、
>凡例の文字を横向きの縦書きにしたいです。

グラフ作成を最初から最後までマクロでというのは面倒なので
テンプレートに登録しておけばどうでしょうか。
で、ApplyCustomTypeメソッドを使います。

ht tps://www.moug.net/tech/exvba/0020015.html

もっと簡単なのは、作業用シートにテンプレートを用意しておき、
マクロで、それをコピーして使うことです。
・ツリー全体表示

【81023】Re:VBAによる電圧自動測定
発言  よろずや  - 19/7/10(水) 19:42 -

引用なし
パスワード
   ▼ムズロウ さん:
>▼ムズロウ さん:
>>よろずやさんの方法で試してみたのですがエラーは出なくなったのですが
>>500回ちゃんと測らなくなるようです
>
>追記でi = 23のときのUBound(DATA)の値は1でi = 24のときのUBound(DATA)の値は11でした
>DATAを参照しても500カウントはされないようです

いや、500回ちゃんと測られていないからエラーになるんであって
UBound(DATA)を使ったせいではありません。

500回ちゃんと測られる保証はないということ。
・ツリー全体表示

【81022】Re:VBAによる電圧自動測定
質問  ムズロウ  - 19/7/10(水) 17:02 -

引用なし
パスワード
   ▼ムズロウ さん:
>よろずやさんの方法で試してみたのですがエラーは出なくなったのですが
>500回ちゃんと測らなくなるようです

追記でi = 23のときのUBound(DATA)の値は1でi = 24のときのUBound(DATA)の値は11でした
DATAを参照しても500カウントはされないようです
・ツリー全体表示

【81021】Re:VBAによる電圧自動測定
質問  ムズロウ  - 19/7/10(水) 14:37 -

引用なし
パスワード
   よろずやさんの方法で試してみたのですがエラーは出なくなったのですが
500回ちゃんと測らなくなるようです
・ツリー全体表示

【81020】Re:グラフの凡例の文字の向きについて
お礼  くっきー  - 19/7/10(水) 8:51 -

引用なし
パスワード
   ▼よろずや さん:

ご回答ありがとうございます。

>というより、マクロの記録が上手く出来ないケースは多々あります。
そうなのですね。無知で申し訳ございません。
マクロ記録で記録されたものなのに動かないのには吃驚です。

>マウスではなく、キーボードの操作で可能であれば
>SendKeys なんて手が使えるかも。
ご教授いただいた方法をまず手動で試してみたのですが、
グラフの凡例などはAlt+矢印で回転はできないようです。
・ツリー全体表示

【81019】Re:サーバー内にあるフォルダとファイル...
発言  Romi  - 19/7/9(火) 20:59 -

引用なし
パスワード
   γ さん

大変失礼いたしました。
ローカルルールを失念しておりました。
ご参考にいただいたサイト記事は拝見いたしました。
しかし、途中で上手く起動しなくて断念しました・・
(確か「ファイルパスが見当たりませんと出ました」)
ゆえに別のコードを使った次第です。
この度は大変失礼なことをしたことをお詫び申し上げます。
・ツリー全体表示

【81018】Re:グラフの凡例の文字の向きについて
発言  よろずや  - 19/7/9(火) 20:04 -

引用なし
パスワード
   >手動操作では行えるが、マクロだと実行できないということがあるのでしょうか。

というより、マクロの記録が上手く出来ないケースは多々あります。

>手動操作では可能

マウスではなく、キーボードの操作で可能であれば
SendKeys なんて手が使えるかも。
・ツリー全体表示

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