Excel VBA質問箱 IV

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

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


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

【80282】グラフ対数表示
質問  やす  - 18/12/28(金) 15:00 -

引用なし
パスワード
   ユーザーフォームでグラフの軸を線形/対数の切り替えをしたいのですが、
With ActiveChart.Axes(xlCategory)
   .ScaleType = xlLinear 'または xlLogarithmic
End With
とすると、y軸で第2軸を使用していると以下のエラーが発生します。
 'ScaleType"メソッドは失敗しました:'Axis'オブジェクト

主軸のみの場合は正常に動くのですが、汎用性を持たせたいので、
第2軸を使用していても動くようにしたいと考えています。

以下のように記述すれば第2軸を使用していても対数表示できるのですが、
逆に線形に戻す記述がわからず困っています。

ActiveChart.SetElement (msoElementPrimaryCategoryAxisLogScale)

どなたか第2軸を使用していても線形/対数を切り替える方法が
お分かりの方がいらっしゃれば教えていただけると助かります。
・ツリー全体表示

【80281】Re:シートの追加貼り付け
お礼  ノンボ E-MAIL  - 18/12/22(土) 20:44 -

引用なし
パスワード
   ▼マナ さん:
>▼ノンボ さん:
>
>シートを追加しながら転記します。
>そうすると、ループは1回で済みます。
>
>Sub test2()
>  Dim i As Long
> 
>  For i = 2 To 5
>    Worksheets("請求書").Copy after:=Worksheets(Worksheets.Count)
>    Range("a3").Value = Worksheets("データ").Cells(i, 1).Value
>  Next
>
>End Sub
マナさんへ
 さっそくご回答いただきまして、大変ありがとうございます。
 完璧にうまくできました。大変勉強になりました。
 本当にありがとうございました。
・ツリー全体表示

【80280】Re:シートの追加貼り付け
発言  マナ  - 18/12/22(土) 9:42 -

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

シートを追加しながら転記します。
そうすると、ループは1回で済みます。

Sub test2()
  Dim i As Long
 
  For i = 2 To 5
    Worksheets("請求書").Copy after:=Worksheets(Worksheets.Count)
    Range("a3").Value = Worksheets("データ").Cells(i, 1).Value
  Next

End Sub
・ツリー全体表示

【80279】シートの追加貼り付け
質問  ノンボ E-MAIL  - 18/12/22(土) 9:24 -

引用なし
パスワード
   VBA勉強中です。よろしくお願いします。
                                            下記データがあります。(データのシート)
  品名    
2 りんご    
3 みかん    
4 ばなな    
6 いちご    
 データと請求書、2つのシートがあります。請求書のシートを4つ(請求書のシートは5つになります)追加します。追加した各シートのセルに、データのシートのセルの値(2行目から6行目)を順番に貼り付けたいです。シート請求書1にはりんご、シート請求書2にはみかん、シート請求書3にはばなな・・・ 下記コードを書きましたが、すべての請求書シートに1つの同じ品名しか貼りつきません。どのようにコードを編集したらよいか教えてください。
よろしくお願いします。

Sub test()
  Dim ht
  For ht = 2 To 5
  Worksheets("請求書").Copy after:=Worksheets(ht)
  Dim i
  For i = 3 To 5
  Worksheets(ht).Range("a3") = Worksheets("データ").Cells(i, 1).Value
  Next
  Next
End Sub
・ツリー全体表示

【80278】Re:『VBA勉強中です…よろしくお願いしま...
発言  マナ  - 18/12/21(金) 18:49 -

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

他で回答があったようなので、こちらはもう必要ありませんね。
ht tp://www.excel.studio-kazu.jp/kw/20181221115811.html
・ツリー全体表示

【80277】『VBA勉強中です…よろしくお願いします...
質問  スンヨン  - 18/12/21(金) 16:13 -

引用なし
パスワード
   プログラム初心者です。よろしくお願いいたします。
VBAを作成したいです勉強中です。
【SHEET1】
   A    B    C    D

2      動物   判定
3      犬    1匹
4      猫    2匹
5      馬    0匹
6      鳥    2匹
7      豚    1匹

からここには記載していませんが、
SHEET1内にある判定ボタン(ボタンは作成済みです)をクリックすると、

【SHEET2】
   E    F    G    H    I    J     K





10
11
12
13
SHEET1の "C3:C7"のまでを見て、
1匹となっている動物だけをSHEET2の”F6:K13の範囲内ランダムのセルに”(この範囲のことを檻1と名付けたいです。)貼り付けたいです。
また、檻2という範囲も作っているのですが、同時に
2匹となっている動物だけをその檻2( M6:R13につくりました )に貼り付けたいです。0匹のところは何もしないで大丈夫です。

最近まで韓国にいて日本語がおかしくなっていたらすみません…。
よろしくお願いします…
・ツリー全体表示

【80276】Re:日付ごとに分割するマクロ
発言  マナ  - 18/12/18(火) 19:01 -

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

こんな感じで考えると良いです。

オートフィルタ(またはフィルタオプション)で、
新規ブックに、2018/12/01データを抽出
名前をつけて保存して閉じる
これを、すべての日付で繰り返す。
・ツリー全体表示

【80275】日付ごとに分割するマクロ
質問  nona  - 18/12/18(火) 15:04 -

引用なし
パスワード
   こんにちは。

エクセルに保存してある下記のようなデータについて、
日付ごとに分けて保存するマクロを作成したいのですが、
どうすればよろしいでしょうか。

会社名 商品名 日付
A社   A   2018/12/01
B社   B   2018/12/01
C社   C   2018/11/01
D社   D   2018/10/01
E社   E   2018/11/01

1行目は項目名でA列:会社名、B列:商品名、C列:日付といったように
データが並んでおり、C列の日付をキーにして項目名はそれぞれ付けたまま、ファイルを分割・保存したいです。
ちなみに、ソートはかかっていない状態です。

VBAに関して初心者のため、ご教示下さい。
・ツリー全体表示

【80274】Re:SubTotalのTotalListのArrayを可変に...
お礼  トナカイ  - 18/12/18(火) 11:28 -

引用なし
パスワード
   すみませんバグでした。
配列に「0」が紛れて混んでいてエラーになっていたようです。
ご回答頂き有難うございました。
・ツリー全体表示

【80273】Re:ディスプレイ設定のスケールサイズ変...
発言  Jaka  - 18/12/17(月) 22:57 -

引用なし
パスワード
   解像度のことかな?

ht tp://excelfactory.net/excelvbatips/api/api_2.htm
・ツリー全体表示

【80272】Re:SubTotalのTotalListのArrayを可変に...
発言  マナ  - 18/12/17(月) 22:07 -

引用なし
パスワード
   ▼トナカイ さん:

>例)TotalList:=Array(2,3) → TotalList:=変数(配列?)で2とか3をセットしたい
>色々試したのですが、どうしてもエラーになってしまいます。

例えば、どんなコードで試してみたのでしょうか?

Dim ary

ary=array(2.3)
TotalList:=ary

みたいな感じで、だめでしたか?

具体例を示して、質問していただけるとよいです。
何をしたくて、どこに躓いているのかわかりません。

 
・ツリー全体表示

【80271】SubTotalのTotalListのArrayを可変にした...
発言  トナカイ  - 18/12/17(月) 17:47 -

引用なし
パスワード
   お世話になります。
小計を自動で行うRange.SubTotalメソッドで行いたいのですが、集計したいフィールドを可変でセットしたいと思っています。
例)TotalList:=Array(2,3) → TotalList:=変数(配列?)で2とか3をセットしたい
色々試したのですが、どうしてもエラーになってしまいます。
どなたかご教授頂けませんでしょうか?
・ツリー全体表示

【80270】Re:罫線が引けない
発言  マナ  - 18/12/15(土) 9:07 -

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

>教えていただけませんでしょうか?

もう必要ないですね。
ht tp://www.excel.studio-kazu.jp/kw/20181215071343.html
・ツリー全体表示

【80269】Re:罫線が引けない
質問  ここな  - 18/12/15(土) 7:29 -

引用なし
パスワード
   ご指摘ありがとうございます。

外側という意味が分かりませんので」
教えていただけませんでしょうか?
・ツリー全体表示

【80268】Re:罫線が引けない
発言  マナ  - 18/12/14(金) 23:06 -

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

Option Explicit
を記述するようにしてください。

ht tp://officetanaka.net/excel/vba/beginner/11.htm

--------
ところで、

>「データ」シートの該当セルが空白なら
  
>If sh1.Range("AC" & i).Value = "" Then

内側のループより外側に記述すべきでは?
・ツリー全体表示

【80267】罫線が引けない
質問  ここな  - 18/12/14(金) 22:09 -

引用なし
パスワード
   VBA初心者です。
「データ」シートの該当セルが空白なら
印刷用シートの罫線を引くということがしたいのですが
どうしても上手くいきません。
ググって修正はしてみたのですが、どうにもなりません。
(メッセージは変わりますが実行時エラー1004になる)
お知恵をお貸しください。


Private Sub Worksheet_Change(ByVal Target As Range)

Dim sh1 As Worksheet: Set sh1 = Worksheets("data")
Dim sh2 As Worksheet: Set sh2 = Worksheets("print")

Dim i As Long
Dim n As Long

For i = 12 To 186 Step 6
For n = 19 To 193 Step 6

ここがどう修正して良いかずっと悩んでいます。
With sh2.Range(sh2.Cells(n, 31), sh2.Cells(n + 1, 31)).Borders(xldialognalup)
    
If sh1.Range("AC" & i).Value = "" Then
.LineStyle = xlContinuous
Else
.LineStyle = xlNone
      
End If

End With

Next n
Next i

End Sub
・ツリー全体表示

【80266】Re:ユーザー定義関数の質問です
お礼  吉庄 E-MAIL  - 18/12/11(火) 13:48 -

引用なし
パスワード
   ▼γ さん:
早速のご返事ありがとうございます。
Specなんですね。別の方法を考えてみます。
大変有難うございました。

以上
・ツリー全体表示

【80265】Re:ユーザー定義関数の質問です
発言  γ  - 18/12/10(月) 7:35 -

引用なし
パスワード
   補足:

ユーザー定義関数ではないプロシージャであれば何でも可能ですが、
ユーザー定義関数にはワークシート関数としての制約があります。

こうしたことを認めてしまうと、そのセルに書かれた内容だけでなく、
セルに影響を及ぼす範囲がすべてのセルに拡がってしまって、
トレーサビリティが失われてしまいます。
検証ができなくなってしまいます。そういうことではないでしょうか。

注目しているセル以外の変更やセルの書式の変更
(これを"副作用"と呼ぶことが多い)に禁欲的であることは、
関数型の言語に見られる特徴のひとつです。
・ツリー全体表示

【80264】Re:ユーザー定義関数の質問です
回答  γ  - 18/12/9(日) 21:01 -

引用なし
パスワード
   ▼吉庄 さん:
>どうしたらこの不具合を訂正できますでしょうか?
不具合ではありません。

仕様です。
ユーザー定義関数は、
セットされているセル以外のセルの状態を変更することが禁止されています。

Excel のユーザー定義関数の制限について
ht tps://support.microsoft.com/ja-jp/help/170787/description-of-limitations-of-custom-functions-in-excel
・ツリー全体表示

【80263】ユーザー定義関数の質問です
質問  吉庄 E-MAIL  - 18/12/9(日) 20:37 -

引用なし
パスワード
   下のWorksheet 関数Deliv33をworksheet上で 「=Deliv33(A1)」と記入しEnterすると#value!となります。
ところが、黄色のSQST.Cells(JJ,K).Value = ARG1をコメントアウトすると呼び出しもとのworksheetで、「=Deliv33(A1)」と記入しEnterを押すと正しく動作します。
IFの一行下をSET SQST.Cells(JJ,K).Value = ARG1はダメでした。一行目のARG1はDATE形式を指しているのでAS  RANGEをAS DATEにしてみましたがダメでした。
どうしたらこの不具合を訂正できますでしょうか?ご教示いただければありがたいのですが、よろしくお願いいたします。

Public Function DELIV33(ByVal ARG1 As Range) As Date
    FNAME = Workbooks(1).Name
    Set CST = Workbooks(FNAME).Sheets(3)
    Set SQST = Workbooks(FNAME).Sheets(13)
    
    If Not IsEmpty(ARG1) Then
      SQST.Cells(JJ,K).Value = ARG1
      DELIV33 = SQST.Cells(65, 11).Value
      Exit Function
    End If
End Function
・ツリー全体表示

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