Use Excel VBA to Read API Data

แชร์
ฝัง
  • เผยแพร่เมื่อ 30 ก.ค. 2024
  • Learn how to write real-world Excel VBA code: 👉courses.excelmacromastery.com/
    Want to download the source code for this video? Go here: bit.ly/3BRIe92
    Subscribe to the channel here: bit.ly/36hpTCY
    Today I'm going to show you how to use Web API's with Excel VBA.
    Web APIs may seem a bit daunting at first but by the time you finish this video, you’ll be able to read data from any Web API with ease.
    The first part of the video explains the 3 core parts of dealing with Web APIs. It explains each in detail and provides coding examples.
    Don't miss the final part of the video where I show a simple method for writing the code for any API.
    All the code used in this video is available to download from the link in the description below.
    #VBAAPI #ExcelVBAAPI #VBAWebAPI #VBARequestAPI
    Free Excel VBA Resources
    Excel VBA Articles (excelmacromastery.com/vba-art...)
    Useful VBA Shortcut Keys
    ========================
    Debugging:
    Compile the code: Alt + D + C OR Alt + D + Enter
    Run the code from the current sub: F5
    Step into the code line by line: F8
    Add a breakpoint to pause the code: F9(or click left margin)
    Windows:
    View the Immediate Window: Ctrl + G
    View the Watch Window: Alt + V + H
    View the Properties Window: F4
    Switch between Excel and the VBA Editor: Alt + F11
    View the Project Explorer Window: Ctrl + R
    Writing Code:
    Search keyword under cursor: Ctrl + F3
    Search the word last searched for: F3
    Auto complete word: Ctrl + Space
    Get the definition of the item under the cursor: Shift + F2
    Go to the last cursor position: Ctrl + Shift + F2
    Get the current region on a worksheet: Ctrl + Shift + 8(or Ctrl + *)
    To move lines of code to the right(Indent): Tab
    To move lines of code to the left(Outdent): Shift + Tab
    Delete a Line: Ctrl + Y(note: this clears the clipboard)
    Table of Contents:
    00:00 - Introduction
    00:37 - What is an API?
    04:37 - API Code example
    07:41 - JSON Converter Library
    09:27 - Reading the converted data
    12:20 - Understanding the returned data
    15:46 - Fast method to write any API code
  • วิทยาศาสตร์และเทคโนโลยี

ความคิดเห็น • 151

  • @TuncanGaming
    @TuncanGaming 10 หลายเดือนก่อน +1

    I didn't know anything about VBA and was able to do what I wanted to just by watching your video. Great work, thank you so much!

  • @guidopiotrowski7114
    @guidopiotrowski7114 ปีที่แล้ว +2

    Incredible video, super clear, and great teacher. Thanks!

  • @magalisantos5544
    @magalisantos5544 11 หลายเดือนก่อน

    Thanks very much for this tutorial!! I created a macro which retrieves data from an API and thus it saved me lots of hours (~6h) from checking them individually!! Thank you VERY MUCH AGAIN!

  • @wayneedmondson1065
    @wayneedmondson1065 2 ปีที่แล้ว +4

    Hi Paul. Very cool tutorial! Thanks for access to all the resources used. I worked through the name example and connected successfully with the same results. Can't say I totally understand it all yet, but it's a great start. Always something new and interesting at Excel Macro Mastery :)) Thumbs up!!

  • @mikem8915
    @mikem8915 ปีที่แล้ว

    Solid video. Shows exactly what you should do for a given objective.

  • @bongzsmalawu1614
    @bongzsmalawu1614 ปีที่แล้ว

    Thank you so much, this has made things lighter for me, I have no programming background, but was looking forward to leverage this lesson to help me import run statistics from strava, garmin connect and polar websites for my team.

  • @garethwoodall577
    @garethwoodall577 2 ปีที่แล้ว

    Excellent explanations (as usual). Good teacher! Thanks Paul *

  • @trueevilangel
    @trueevilangel 2 ปีที่แล้ว

    thank Paul , you explained it easy to understand.

  • @vbaclasses3553
    @vbaclasses3553 2 ปีที่แล้ว

    Awesome video, thank you. Will make time to work through it all.

  • @edrobinson8248
    @edrobinson8248 2 ปีที่แล้ว +1

    good stuff. hope beginners realize that is for a specific (web) api . Not generic API's.

  • @simondechoisy779
    @simondechoisy779 2 ปีที่แล้ว +1

    Really looking forward to this

  • @kolavithonduraski5031
    @kolavithonduraski5031 2 ปีที่แล้ว +5

    next level VBA 👍

  • @chrisouellet2832
    @chrisouellet2832 8 หลายเดือนก่อน

    thanks for this tutorial Paul!! this one is very cool!!!

  • @marcellino53
    @marcellino53 3 หลายเดือนก่อน

    Awesome job.. Thanks, and greetings from Brazil !

  • @hf2138
    @hf2138 2 ปีที่แล้ว

    Thanks for a great video Paul, keep it up

  • @fredrodriguez963
    @fredrodriguez963 2 ปีที่แล้ว

    Hi Paul, very good stuff. Thank you.

  • @oz7075
    @oz7075 2 ปีที่แล้ว +1

    I was preparing a series of videos to upload to my upcoming TH-cam channel and one of them was APIs. Interesting. I have a project of mine which uses a WebAPI from an Online dictionary.

  • @CivilEngSpreadsheets
    @CivilEngSpreadsheets 2 ปีที่แล้ว

    Hi Paul! I'm learning a lot from your channel. Would really appreciate if you could do a tutorial about VBA and Google Drive API like how can you use VBA to upload or download a file from Google Drive.

  • @TheSardOz
    @TheSardOz 2 ปีที่แล้ว

    Hi Paul, thanks for the excellent video. How do you catch errors if you have a miss match? If you have a collection of stocks cods and you getting the close price, if one code if not available you’ll have a error and the loop will brake.. how can you skip the error and finish the loop?
    Thank you.

  • @davidlinesq
    @davidlinesq 2 ปีที่แล้ว

    Thank you so much for this video. This has helped me with a program that I needed to create for work. One request for a follow up video would be how to make paginated api calls and combine the results into one array. Thanks as always!

  • @tgirard123
    @tgirard123 2 ปีที่แล้ว

    Easy as 1-2-tree. Thank you so much. I could not figure this out for the life of me. Now I got a working sheet!!

  • @saxena1955
    @saxena1955 2 ปีที่แล้ว +5

    Hi Paul ,
    Great video. Can you make it a dynamic code to read data of any api and write it to excel ? Please explain it in next video . Thanks

  • @kevinbezant8972
    @kevinbezant8972 2 ปีที่แล้ว +3

    Very interesting video, Paul. I'm currently using Integromat to integrate web apps. Whilst Integromat is very good, I feel I could do with having more control and your video has got me thinking! A follow-up video on writing to an API would be useful.

    • @jjtagh
      @jjtagh 2 ปีที่แล้ว +1

      Also some examples writing to API using GraphQL (mutation) as well as REST API would be fantastic.

  • @DLAmurph
    @DLAmurph 2 ปีที่แล้ว

    This example blew me away very informative and helpful, thank you Paul

  • @aNDy-qh1em
    @aNDy-qh1em 2 ปีที่แล้ว

    15:35 It could be a mixture of dictionaries/collections and also classes . 'Country' could well be a class. But that is a matter of preference - for simplicity reason that is ok. When using s dictionary I would verify if the key-value pair exist. A great tutorial, thak you

  • @1rikenpatel
    @1rikenpatel 2 ปีที่แล้ว

    Hi Paul in the example you have used with the name and country, can a filter be applied on the country id so that when a name is selected on data for the filtered country is retrieved? if possible how would I add this to the code?

  • @nickroe5992
    @nickroe5992 2 ปีที่แล้ว

    Thanks, that was a very good tutorial

  • @kingparc
    @kingparc 2 ปีที่แล้ว

    Thank you very much 👍

  • @anthonypasslow1933
    @anthonypasslow1933 2 ปีที่แล้ว +1

    Great job as always, thank you Paul

  • @ashkumar8797
    @ashkumar8797 ปีที่แล้ว

    Great video, thanks for sharing and explaining

  • @fairosabdulmutalip641
    @fairosabdulmutalip641 2 ปีที่แล้ว

    Hi Paul, love your tutorial

  • @Algoreborn
    @Algoreborn ปีที่แล้ว

    THANK YOUUUUU, you made my day...

  • @bioactiveSaha
    @bioactiveSaha 2 ปีที่แล้ว

    Hi Paul! Thanks for the video. It is very informative. I was able to download and parse json data for small dataset. However, If I try to download complete data (~600,000), excel goes to not responding. I tried with .SetTimeouts 0, 0, 0, 0 and/or waitforresponse but the problem still persist. Any tips? Thanks in advance for your help.

  • @caste_
    @caste_ 2 ปีที่แล้ว

    thanks my man your a genious

  • @thomy0319
    @thomy0319 2 ปีที่แล้ว

    Wow , que impresionante! 👏👏

  • @Monduras
    @Monduras 2 ปีที่แล้ว +1

    Outstanding as always! Bravo

  • @johnsmith2771
    @johnsmith2771 2 ปีที่แล้ว

    Great video, thank you so much for posting this, really helps

  • @hain.v.h5744
    @hain.v.h5744 2 ปีที่แล้ว

    Thank your video.

  • @mas07sencillo
    @mas07sencillo ปีที่แล้ว

    Thanks for this video! I also have a doubt. How do i handle the API call when the API response have pagination? should i use a for an remake a colletion?

  • @MrMallesh1
    @MrMallesh1 2 ปีที่แล้ว

    Amazing video ! I liked it , thanks a lot !

  • @briandelaney6354
    @briandelaney6354 2 ปีที่แล้ว

    Hi Paul, I had no idea you could use VBA for this purpose! Thanks for sharing the knowledge 😀😀

  • @Abhishekuchagaonkar
    @Abhishekuchagaonkar 2 ปีที่แล้ว

    You are awesome!! (Guruji)

  • @sofianemeriane
    @sofianemeriane ปีที่แล้ว

    thanks for sharing!

  • @solimanalali8048
    @solimanalali8048 2 ปีที่แล้ว +1

    A very interesting lesson. My question is, I want to create an invoice automatically. I want to create a QR code on the same invoice, and when scanning the code, the same invoice appears.

  • @protostecnologia4096
    @protostecnologia4096 ปีที่แล้ว

    Wonderful video. Coul VBA connect with a dspace repository? The latest version of dspace repository is made in Angular (front end) and use a backend built on spring boot (java web app)

  • @fernandobravo2886
    @fernandobravo2886 2 ปีที่แล้ว

    this is great, one question could be how would you do it with a POST request, that also you need a request body website, that is very common within intranet company's websites.

  • @bernardoezeta2531
    @bernardoezeta2531 2 ปีที่แล้ว

    Hi Paul! Thank you so much!

  • @buzan.untung
    @buzan.untung 2 ปีที่แล้ว

    Thank you

  • @MarceloCutin
    @MarceloCutin 2 ปีที่แล้ว

    Great video!!! Congrats!

  • @luismejia6817
    @luismejia6817 2 ปีที่แล้ว

    This is so awesome. I’m gonna. Be working on a lot of personal projects from this rapidapi website. I’m a data analyst so I’ll be inserting the responses in a database :)

  • @elricho72
    @elricho72 2 ปีที่แล้ว

    Excellent video and explanation, I ask you seeing the use of the api, could we make it possible for us to interact with VBA to upload or download files from google drive?

  • @tarunprakashsingh
    @tarunprakashsingh 2 ปีที่แล้ว

    hey nicely explained... I am trying to build something where user can define a Get URL and my code can parse any JSON without knowing the Structure and show it in tabular form in excel. How can i do that?

  • @acidkans
    @acidkans ปีที่แล้ว

    Hi Paul, great tutorial, with almost zero knowledge i managed to get data of EURO currency from Polish National Bank...but what I'm missing in your tutorial is assigning values to specific cells...for example when I filter a dataset I'd like to paste currency rate to filtered column.....no idea how to do it... I mention that I've this rate but can't paste it...could you help int hat matter? your movies are top quality, great job

  • @itsmeforsure5475
    @itsmeforsure5475 10 วันที่ผ่านมา

    Excellent!!!

  • @Ashokkumarg8
    @Ashokkumarg8 11 หลายเดือนก่อน

    That is awesome, but can you tell how did you make those two API examples currencies & recipes from the excel

  • @RMS888168
    @RMS888168 ปีที่แล้ว

    Would it be possible to see how to implement OAuth 2.0 authentication using the examples in this video?

  • @shinrafahell
    @shinrafahell 2 ปีที่แล้ว +9

    Hey Paul, great video as always! Any chance to have a tutorial explaining how to get apis that utilizes oauth such as Google sheets or Twitter? Thanks!

    • @phonesolo8513
      @phonesolo8513 2 ปีที่แล้ว +1

      Exactly what i need.

    • @MyAudioBookCompilation
      @MyAudioBookCompilation 2 ปีที่แล้ว

      This is the last wish that i want to achieved. To learn to modify google sheets using vba.

    • @shinrafahell
      @shinrafahell 2 ปีที่แล้ว +1

      @@MyAudioBookCompilation using python it is a breeze. Unfortunately I didn't find anything related to vba.

    • @MyAudioBookCompilation
      @MyAudioBookCompilation 2 ปีที่แล้ว

      @@shinrafahell I see. Thank you. Python and JavaScript are in my list but sometimes we still want to achieved what we really want to achieved. 😁 I know that learning to manipulate google sheet using VBA might be overkill but that what makes us happy. Anyways thank you for the info i think i will try to learn if first.

  • @TheJaebeomPark
    @TheJaebeomPark 2 ปีที่แล้ว

    Amazing!

  • @halforman6726
    @halforman6726 ปีที่แล้ว

    Great video. Your channel is awesome. How can I use a private API (requires authentication) in VBA?

  • @WoottonRivers
    @WoottonRivers 2 ปีที่แล้ว

    This is a really good video. I've had a go at this before but ran into the problem of authentication. I was trying to access data in Xero (the cloud accounting solution). How do you authenticate through VBA if you only have a email address, password and 2FA code? Authentication for other web services creates a similar issue. Suggestions welcome.

  • @jesus.moreno
    @jesus.moreno 2 ปีที่แล้ว

    wouuuuuuuuuuuuuuuuuuu amazing ... you got a suscriber to your channel !!!

  • @jorgevalverdevalderrama5586
    @jorgevalverdevalderrama5586 2 ปีที่แล้ว

    Excellent video and great Spanish name picking UwU

  • @yograjkolhe5225
    @yograjkolhe5225 ปีที่แล้ว

    How can we parse api response in XML? Is there any library available for the same like VBA-JSON library?

  • @The_Code_Father
    @The_Code_Father ปีที่แล้ว

    Very beneficial video
    I'm trying to build a connection with e invoicing portal in my country using json files and api and they're talking about sth called token
    Could you plz add more detailed tutorial on this topic

  • @farahinrosli7244
    @farahinrosli7244 ปีที่แล้ว

    hi can you do to copy data from private apps then paste it in excel, also include the screenshot of data and paste in the excel too, but for this it included multiples data to do in one sheet before move to next sheet

  • @scotolivera8207
    @scotolivera8207 2 ปีที่แล้ว

    very informative

  • @excelmonkey
    @excelmonkey ปีที่แล้ว

    Just out of curiosity, how would you store multiple API keys in your module such that the correct key was called by each subroutine?

  • @KLiCuk1
    @KLiCuk1 ปีที่แล้ว

    Hi Paul, I remember watching this when you first posted it and thought I'd put it on a backburner until I needed it. I just tried downloading the source code but unfortunately the link doesn't work anymore. Is there an up to date link?

  • @rajesh321r
    @rajesh321r 2 ปีที่แล้ว +2

    This is awesome👍
    Happy to learn APIs and how to use with VBA.

  • @abhiabhiram2855
    @abhiabhiram2855 ปีที่แล้ว

    Could you please let me know how to get API response text in VBA ? For example for 200 response , response text is ok .

  • @ReverendZen
    @ReverendZen 2 ปีที่แล้ว

    Hi Paul, thank you for the great video. I had an issue with downloading the source code. I am not sure if the link is broken or if I need to create a login or something. Is there another means by which I can get the source code?

    • @Excelmacromastery
      @Excelmacromastery  2 ปีที่แล้ว

      Can you send me an email? It's Paul at the channel name.

  • @vijayalakshmibadigeru4479
    @vijayalakshmibadigeru4479 2 ปีที่แล้ว

    Very useful video thanks.. can we define the jsonconverter in classes..

  • @KhalilYasser
    @KhalilYasser 2 ปีที่แล้ว

    Thank you very much. Awesome tutorial. I have signed up in rapidapi but how can I get the API that I would insert in the VBA code (I couldn't find such API section)

    • @Excelmacromastery
      @Excelmacromastery  2 ปีที่แล้ว

      You have to subscribe to each api you wish to use.

    • @KhalilYasser
      @KhalilYasser 2 ปีที่แล้ว

      @@Excelmacromastery I have tested again now and it is working. Yesterday, something went wrong.

  • @johnstabile9016
    @johnstabile9016 ปีที่แล้ว

    I'm working on a mac. When you do the references part, is there a mac equivalent to WinHTTP Services. I don't have as many options as you do.
    Thanks,
    John

  • @schmuttergold2296
    @schmuttergold2296 3 หลายเดือนก่อน

    Great video. I have to use a post command and need to pass a JSON request together with the http request and headers, How can I do that with VBA?

  • @faiz.ahmad65
    @faiz.ahmad65 ปีที่แล้ว

    Can you please also tell me how to send parameters along with API Key in Post request?

  • @lisah8896
    @lisah8896 ปีที่แล้ว

    Hi Paul, Love this but I'm hoping you can help me with something. I can't get the msgbox to display the "request.responsetext. I just get a blank box. If I put the address in a google address box, values return but my message box remains blank. Can you give me some ideas?

  • @timlambe8837
    @timlambe8837 ปีที่แล้ว

    Hello,
    is it possible to use Excel as a backend and set up an API with VBA? 🤔

  • @davidsaw3517
    @davidsaw3517 2 ปีที่แล้ว

    How do you do nested dictionaries?

  • @tangsh497
    @tangsh497 2 ปีที่แล้ว

    talent

  • @huonggiang537
    @huonggiang537 ปีที่แล้ว

    Hi Paul. You can guide How to scrape data from a website that requires login? thank U

  • @Rice0987
    @Rice0987 2 ปีที่แล้ว +1

    By chance 've read this: "Programs must be written for people to read, and only incidentally for machines to execute". :)

  • @thierryodou4479
    @thierryodou4479 2 ปีที่แล้ว

    Is it possible run R script on VBA?

  • @youknowme6780
    @youknowme6780 ปีที่แล้ว +1

    I am working on a vba to fill web form, it works on first IE page and submit the form, but when a new page loads with different web address, my code don't recognize the active web page...to keep on filling this page Any advice??? No selenium used

  • @axelamoe
    @axelamoe 2 ปีที่แล้ว

    Can you make a video for windows api to control an open third party application and get the text?

  • @rbloesser9009
    @rbloesser9009 2 ปีที่แล้ว +1

    It would have been nice to get more specifics on how to get an API Key. The Rapid-site is very confusing for a beginner. I could not run your code because I could not figure out how to get an API Key.

  • @gokmensen823
    @gokmensen823 2 ปีที่แล้ว

    we could not find your APIKEY module and without it the excel does not work. could you share with us? module or xlsm excel file? thanks

  • @MrMallesh1
    @MrMallesh1 2 ปีที่แล้ว

    whats the difference between Extracting data via API and extracting data via web scrapping ! or they both same ! can we use same code for web scrapping !

    • @Excelmacromastery
      @Excelmacromastery  2 ปีที่แล้ว +1

      That's a good question. While they both read from a website they are completely different.
      *Web Scraping*: When you access any website in your browser you are essentially receiving a HTML file from the website. HTML is text and what web scraping does is read through this HTML and extracts data from it.
      *API*: An API is a programming interface created by the website that allows you to access certain functionality. This means you have direct access to the web application with support and documentation.

  • @bimaljain1666
    @bimaljain1666 2 ปีที่แล้ว

    Hey Paul, I am from India. I have designed a project for which I want to get the Train No. and name of the train from the web in my excel worksheet. Please help the execute the same.

  • @daves4026
    @daves4026 2 ปีที่แล้ว +1

    Hi Great video thank you for sharing. Cant see the code link though, cant wait to practice this

  • @NaveenKumar-fs3nk
    @NaveenKumar-fs3nk ปีที่แล้ว

    LinkedIn to scrap using macro is it possible

  • @mwolffe
    @mwolffe ปีที่แล้ว

    Great video. I'm a little late to the party. :) I followed along several times and tried typing out the code as you went along, but my code failed. I keep getting a Compile error: User-defined type not defined on the 'Dim country As Dictionary' portion of the code. Not sure what I missed. Hopefully you or someone here will have an idea. Thanks!

    • @Excelmacromastery
      @Excelmacromastery  ปีที่แล้ว

      You need check "Microsoft Scriping Runtime" under Tools->References

  • @knowyourdirt1152
    @knowyourdirt1152 ปีที่แล้ว

    Can you show an example of a post request instead of a get request?

  • @jamcast725
    @jamcast725 ปีที่แล้ว

    I cant get just a list to print. it doesn't have a key value pair inside but just a list

  • @user-pb7zf8tm3x
    @user-pb7zf8tm3x 2 ปีที่แล้ว +1

    can not find the download link of this video

  • @noambrand
    @noambrand 2 ปีที่แล้ว

    The bitly link DOWNLOAD THE SOURCE CODE writes the website is not secure and does not let me download.

    • @Excelmacromastery
      @Excelmacromastery  2 ปีที่แล้ว

      Are you using a company firewall or popup blocker?

    • @noambrand
      @noambrand 2 ปีที่แล้ว

      @@Excelmacromastery company firewall, from home it worked

    • @Excelmacromastery
      @Excelmacromastery  2 ปีที่แล้ว

      @@noambrand Glad you got it sorted Noam.

  • @todddean7722
    @todddean7722 2 ปีที่แล้ว

    The link to the code seems to be broken

  • @andriodenavarrete4495
    @andriodenavarrete4495 4 หลายเดือนก่อน

    But how do you add it to th excel sheet?

  • @TheGEEKofGAME
    @TheGEEKofGAME 2 ปีที่แล้ว

    With your code about name and countries, I have an error on the line Request.Send and I verify references WinHTTP and Scripting are check…. :/

  • @trillionshares3914
    @trillionshares3914 2 ปีที่แล้ว

    template website "Page not Found"