kybo の回答履歴
- ユーザー定義関数の再計算
ユーザー定義関数を作りました。 ところが、この関数が自動再計算をしてくれません。 どうしたら自動再計算するようになるのでしょうか? よろしくお願いします。 ちなにこの関数は、自分のシートのB2とsheet1~sheet4のB9を比較して、正しければB9の4つ右のセルの値を合計して返すものです。 =SheetLook($B$2,"sheet1,sheet2,sheet3,sheet4",B9,4) コードです。 Function SheetLook(参照元 As Variant, 比較対象シート As String, 比較対象セル As Range, 参照セル位置 As Integer) As Variant Dim i As Integer Dim rng As Range Dim sss As Variant Dim kei As Variant Dim cnt As Integer sss = Split(比較対象シート, ",") kei = 0 cnt = 0 For i = 0 To UBound(sss) Set rng = Sheets(sss(i)).Range(比較対象セル.Address) If 参照元 = rng Then kei = kei + rng.Offset(0, 参照セル位置) cnt = cnt + 1 End If Next If cnt <> 0 Then SheetLook = kei Else SheetLook = "" End If End Function
- パスワードでシート保護したExcelへの画像貼り付けについて
Excel2000でロックしていないセルに画像を貼り付けようと思います。 パスワードでシート保護しています。 VBAで次のように処理したら画像は貼り付けられました。 しかしパスワード入力を求められ、入力すると画像の挿入後シートは保護されたのですが、パスワードは解除になっています。 パスワード解除にならずに画像挿入できる方法をご教示ください。 さらに挿入後のサイズ変更のVBAも併せて教えて頂ければ助かります。 当方VBAについては全くの初心者です。 Sub 画像挿入() With ActiveSheet 'シート保護解除 .Unprotect '画像挿入ダイアログ表示-->画像を挿入 Application.Dialogs(xlDialogInsertPicture).Show '画像が挿入されたら、保護のロック対象外に設定 If TypeName(Selection) = "Picture" Then Selection.Locked = False End If 'シート保護 .Protect DrawingObjects:=False, Contents:=True End With End Sub
- Excel VBAでフォーカスを移動しない方法
Excel VBA リストのソースを設定してあるコンボボックスから次のコンボボックスに移動する際、入力にエラーあれば フォーカスを移動しないようにするコードはどのようにすればいいのですか? 現在は Private Sub [コンボボックス名1]_Exit(ByVal Cancel As MSForms.ReturnBoolean) If [コンボボックス名2] = "" Then MsgBox "値が不正です。", vbInformation, "フォーム名" End If End Sub としています。
- Excel VBAでフォーカスを移動しない方法
Excel VBA リストのソースを設定してあるコンボボックスから次のコンボボックスに移動する際、入力にエラーあれば フォーカスを移動しないようにするコードはどのようにすればいいのですか? 現在は Private Sub [コンボボックス名1]_Exit(ByVal Cancel As MSForms.ReturnBoolean) If [コンボボックス名2] = "" Then MsgBox "値が不正です。", vbInformation, "フォーム名" End If End Sub としています。
- Excel2007で半角カタカナを入力後タブキーで確定し右のセルに移動したい
Excel2003でセルに半角カタカナを入力後Enterキーを押さずタブキーで確定しそのまま右のセルに移動していたのですが Excel2007にバージョンアップしたのですが一度Enterキーで確定後でないと移動できません。 何か良い方法はないでしょうか? OSはXPです。
- エクセルVBAで順番にデータを処理していくとき、途中で一度だけポーズをかける方法
エクセルで2000行分くらいの表があり、A1、A2と順番に処理して行くのですが、その処理の結果によって間が飛ぶ場合があります。 A1→B1→E1→F1→G1・・・といった感じです。 こんなマクロの中で、行が1000を「超えた」ときに「一回だけ」メッセージ(例えば「1000を超えました」)を表示させるにはどうすればいいでしょうか。 Dim a As Range If a.Row = 1000 Then MsgBox ("1000を超えました") これでは、ちょうど1000行目が飛ばされた場合は素通りしますし、 If a.Row >= 1000 Then MsgBox ("1000を超えました") これだと、1000行目を超えたら毎回メッセージが表示されます。 何かいい方法はないでしょうか。 よろしくお願いします。
- TextBoxの値を使った計算式
皆様、こんにちは。 いくつかのテキストボックスを含んでいるユーザーフォームを作りました。ユーザーがこれらのテキストボックスに入力したデータを使った式をあるセルに設定しようとしていますが、「#NAME?」というエラーメッセージが出てしまいます。コードは以下のように書いています。 Private Sub CommandButton1_Click() Range("P24").Value = TextBox8.Value Range("Z24").Formula = "=Val(TextBox8.Text)*37.86" Range("AA24").Formula = "=Val(TextBox8.Text)*57.86/1000*44/12" Range("AB24").Formula = "=Val(TextBox1.Text)*37.86/1000*0.25+Val(TextBox3.Text)/0.11*0.013+Val(TextBox4.Text)*/0.12*0.0076+Val(TextBox5.Text)/0.25*0.015+Val(TextBox6.Text)/0.31*0.017+Val(TextBox7.Text)/0.22*0.013" Unload 軽油の消費量 End Sub 何方か詳しい方に正しい書き方を教えていただければ非常に助かります。 どうぞよろしくお願いいたします。
- A or B または A且つBの書き方
お世話になります IF A = 1 then **** 又はIF B = 1 then **** の場合同じ事をさせるにはどう書けば良いでしょうか 又 A = 1 且つ B = 6の場合 C = 100と書きたいのですが、どう書けば良いでしょうか よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- masaojisan
- 回答数3
- エクセルで自動連番
いろいろ調べてもわからなかったので、教えてください。 複数行コピー&自動連番の操作についてです。 sheet1に以下の表を作成しました。 A B C D 1|【グループID】 【品名】 【個別ID】 【数量】 2| 001 Aセット 10001 5 3| 002 Bセット 20001 2 マクロで複数行コピーを行い、sheet2に A B C D 1|【グループID】 【品名】 【個別ID】 【数量】 2| 001 Aセット 10001 5 3| 001 Aセット 10001 5 4| 001 Aセット 10001 5 5| 001 Aセット 10001 5 6| 001 Aセット 10001 5 7| 002 Bセット 20001 2 8| 002 Bセット 20001 2 の表を作成することはできたのですが、できれば【個別ID】を A B C D 1|【グループID】 【品名】 【個別ID】 【数量】 2| 001 Aセット 10001 5 3| 001 Aセット 10002 5 4| 001 Aセット 10003 5 5| 001 Aセット 10004 5 6| 001 Aセット 10005 5 7| 002 Bセット 20001 2 8| 002 Bセット 20002 2 という形でマクロで複数行コピーと組み合わせて自動で採番まで行いたいと思っています。 ちなみコードは、完全に自分で組む事はできないですが、コードの内容を理解して改造できる程度です。 よろしくお願いします。