I'm thinking of coding a program to create an anti-virus software to regularly carry out scans and updates to protect my PC, although I don't want to create a GUI for it. Would visual basic be an ideal application for this? Is it worth looking into alternative applications instead?
I like C# better, as it was designed from the ground up to be a .NET language, while VB.NET was an adaptation of a previous language (just plain VB). However, if you have more VB.NET expertise than time/money/interest to develop C# skills, VB.NET should be able to do anything that C# can do.
Both have more documentation support in the form of tutorial/reference websites and books than the third of the "big three" languages supported by Visual Studio. C++/CLI (formerly "Managed C++") looks like it's mostly useful for those with a lot of existing C++ code to convert to .NET.
One thing you might find useful is true C++ for "unmanaged" native code. Not all of the WinAPI functions have corresponding .NET class/method calls. I found some holes in font support, for example, when trying to write a Character Map replacement in C#. I got away with just using Platform Invoke to get specific system calls done in C#. You might be able to do the same in VB.NET.
Visual Basic is a good starting point if you are a beginner to programming – give it a try. Even if you switch to something else, having some programming experience will help that switch go faster, many programming languages are quite similar.
Not for a non visual system. Better off to use C or a derivative. But how are you going to create the regularly updated virus databases you need? And how are you going to get the program to protect against the replication of infected files often caused when trying to remove them.
If you are talking about VB.NET then, yes it can be used to do a windows service application which is what you would want for a virus scanner. With that said it might not be the best language for something like this. If you are just doing this as a learning experience and don't intend on actuall selling it, then you would probably be on with VB.NET.
I would consider it less than ideal. But you can try. Consider it a learning experience.
And then, you could try C++.