質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

integer

integerは、一般的に整数を表します。プラスやマイナス、ゼロもなりうる全ての数です。(例 : -2, -1, 0, 1, 2...)

String

Stringは、ゼロ以上の文字から連続してできた文字の集合を扱うデータ型です。基本的にテキストを表すために使われます。

解決済

他のEXCELファイルデータを取り込む際のシート名(文字列)の指定ができません。

yokoazu
yokoazu

総合スコア9

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

integer

integerは、一般的に整数を表します。プラスやマイナス、ゼロもなりうる全ての数です。(例 : -2, -1, 0, 1, 2...)

String

Stringは、ゼロ以上の文字から連続してできた文字の集合を扱うデータ型です。基本的にテキストを表すために使われます。

2回答

0リアクション

0クリップ

972閲覧

投稿2022/04/11 05:59

編集2022/04/11 15:21

下記URLを参考にしています。
リンク内容https://excel.kuuneruch.com/vba-excel-read/

リンク先のコードは、他のEXCELファイルデータを取り込む際のシート名が整数になっており整数型(Integer型)を使用しマクロを作成しています。
私がやりたい事は、シート名を文字列(String)にして実行可能にしたいです。

ですが、IntegerをStringに書き換えても型が一致しないというエラーになってしまいます。リンク先のコードをどのように修正したらよいのでしょうか。
初心者のため説明が下手で申し訳ありませんがご教示頂けますと幸いです。

’「取り込むEXCELファイルのパス」と「取り込むEXCELファイルのデータが存在するシートNO」を引数に持つEXCEL関数を作成 Public Function GetExcelData(ByVal FilePath As String, ByVal SheetNo As Integer) As Variant Dim wb As Workbook Dim ws As Worksheet 'ワークブックを開く Set wb = Workbooks.Open(FilePath) 'シートを取得 Set ws = wb.Worksheets(SheetNo) 'データ入力されている範囲を取得する GetExcelData = ws.UsedRange 'ワークブックを閉じる wb.Close 'メモリー開放 Set ws = Nothing Set wb = Nothing End Function
’EXCELデータ取り込み関数を利用する関数を作成 Public Sub Test1() Dim var As Variant Dim FilePath As String Dim InSheetNo As Integer Dim OutSheetNo As Integer Dim OutCell As String With ThisWorkbook.Sheets(1) FilePath = .Range("B1") InSheetNo = .Range("B2") OutSheetNo = .Range("B3") OutCell = .Range("B4") End With '他のEXCELファイルデータを取り込む var = GetExcelData(FilePath, InSheetNo) Dim MaxRow As Long Dim MaxCol As Long '最大行数を取得する MaxRow = UBound(var, 1) '最大列数を取得する MaxCol = UBound(var, 2) '自ワークブックの1番目のシートのセルA1を基点に取り込んだデータを出力する ThisWorkbook.Sheets(OutSheetNo).Range(OutCell).Resize(MaxRow, MaxCol).Value = var End Sub

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

2022/04/11 06:04依頼された後にこの質問は修正されています

こちらの質問が複数のユーザーから「やってほしいことだけを記載した丸投げの質問」という指摘を受けました。

2022/04/11 06:09依頼された後にこの質問は修正されています

こちらの質問が他のユーザーから「問題・課題が含まれていない質問」という指摘を受けました。

yokoazu

2022/04/11 06:04

コードは下記です。 IntegerをStringに書き換えてもうまくできませんでした。 Public Sub Test1() Dim var As Variant Dim FilePath As String Dim InSheetNo As Integer← ここをStringに書き換えました Dim OutSheetNo As Integer← ここをStringに書き換えました Dim OutCell As String With ThisWorkbook.Sheets(1) FilePath = .Range("B1") InSheetNo = .Range("B2")← 文字列でシート名を指定できず OutSheetNo = .Range("B3")← 文字列でシート名を指定できず OutCell = .Range("B4") End With '他のEXCELファイルデータを取り込む var = GetExcelData(FilePath, InSheetNo) Dim MaxRow As Long Dim MaxCol As Long '最大行数を取得する MaxRow = UBound(var, 1) '最大列数を取得する MaxCol = UBound(var, 2) '自ワークブックの1番目のシートのセルA1を基点に取り込んだデータを出力する ThisWorkbook.Sheets(OutSheetNo).Range(OutCell).Resize(MaxRow, MaxCol).Value = var End Sub
y_waiwai

2022/04/11 06:05

あなたのその実行できないというコードを提示しよう
y_waiwai

2022/04/11 06:06

コードは質問文を編集して追記してください コードは、質問を編集し、</>(コードの挿入)ボタンを押し、出てくる’’’の枠の中にコードを貼り付けてください
bebebe_

2022/04/11 07:05

Public Function GetExcelData(ByVal FilePath As String, ByVal SheetNo As Integer) As Variant 参考サイトのこの部分を Public Function GetExcelData(ByVal FilePath As String, ByVal SheetNo As String) As Variant にはしていますか?
meg_

2022/04/11 10:31

VBAですか? 質問タグに「VBA」を追加した方が回答が付きやすくなるかと思います。
yokoazu

2022/04/11 15:24

皆さん、ご回答ありがとうございました。 初めて質問したため質問へのコード記載等わからず、ご指摘頂きありがとうございました。 また、bebebe_様にご回答いただいた内容で解決しました。回答をくださった皆様、こんな初歩的な質問にご回答くださり感謝いたします。ありがとうございました。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

integer

integerは、一般的に整数を表します。プラスやマイナス、ゼロもなりうる全ての数です。(例 : -2, -1, 0, 1, 2...)

String

Stringは、ゼロ以上の文字から連続してできた文字の集合を扱うデータ型です。基本的にテキストを表すために使われます。